SPB Git forge

spb/fabri-ka

Public

Agrégateur de produits québécois — www.fabri-ka.com

217commits 1branches 0releases
66.1 MBsize
maindefault branch
4 h agolast push
Python 38.4% HTML 30.3% TypeScript 17.2% CSS 11% JavaScript 3.2%
13.6 KB · 103 lines markdown
Rendered Raw Blame History
1# Fabri-KA — Conformité des sources (CGU, robots.txt, licences)23Dernière revue complète : **2026-08-19** (Phase 3 — expansion des sources).4Chaque source est évaluée AVANT connexion : accès réel constaté, volume5mesuré, robots.txt/CGU lus à la date indiquée, décision consignée.6Principes transverses : politesse réseau (délais entre requêtes, caches7disque, retries doux), aucune donnée derrière authentification, crédit de la8source conservé dans `discovery_sources`/`origin_evidence` de chaque fiche,9retrait sur demande d'un ayant droit.1011## 1. Base du catalogue — plateformes e-commerce des boutiques1213Le catalogue produit provient des **endpoints publics** des boutiques14elles-mêmes (pas d'annuaire tiers) :1516| Plateforme | Endpoint | Base de conformité |17|---|---|---|18| Shopify | `/products.json`, `/collections.json` | Données publiques exposées par la boutique à des fins de syndication ; robots.txt Shopify standard n'interdit pas ces chemins (interdit /cart, /checkout, /admin — jamais requêtés). Throttle global + backoff 429 (6 tentatives, 8 s×n). ⚠ 2026-08-19 : `robots.txt` derrière l'interstitiel « Verifying your connection » de Shopify pour certaines boutiques — l'endpoint catalogue, lui, répond normalement. |19| WooCommerce | `/wp-json/wc/store/v1/products` | Store API publique conçue pour l'affichage sans authentification. |20| Wix | GraphQL storefront public (jeton public `/_api/v1/access-tokens`) | API destinée au frontend public de la boutique. |21| Squarespace | `?format=json` | Rendu JSON public des pages boutique. |22| Square | endpoint liste public (`include=images,options`) | Vitrine publique Square Online. |23| — | Scrapfly (repli ponctuel) | Uniquement sur des pages publiques, dans les mêmes limites. |2425Fréquence : cycle complet toutes les **6 h** (PM2 watch 360), ~1 57026boutiques, retrait automatique des produits disparus (délai de grâce).27Les boutiques dont le domaine ne répond plus sont **dépubliées** («28présumée fermée », `fail_streak` ≥ 12 syncs consécutifs ≈ 3 jours) et29réintégrées automatiquement dès qu'elles répondent.3031## 2. Annuaires et répertoires connectés (découverte de fabricants)3233### Vagues 1–3 (rappel, revue 2026-08-12 → 2026-08-18)34Aliments du Québec, Les Produits du Québec, Fromages d'ici, Érable d'ici,35Vins/Cidre/Distilleries du Québec, AMBQ, Économusées/Artisans à l'œuvre,36CMAQ (metiersdart.ca, via Firecrawl), ICQ, Acheter québécois, Signé Local37(vendors), marchés publics (AMPQ), ~15 annuaires régionaux gourmands,38Pages Vertes, MIAM Mauricie, Garde-Manger du Québec, Terroir et Saveurs.39Tous : répertoires publics de promotion des producteurs — la mise en40visibilité des membres est leur raison d'être ; robots permissifs constatés41à la connexion ; on n'extrait que nom/lien/coordonnées publiques, jamais le42contenu éditorial. Décision : **connectés** (inchangé).4344### Vague 4 (évaluées et connectées le 2026-08-19)4546| Source | Accès constaté | Volume mesuré | robots/CGU (2026-08-19) | Décision |47|---|---|---|---|---|48| **CARTV — répertoire bio (SIPAB, produitsbioquebec.info)** | Formulaire public Struts « recherche par type d'opération », 7 requêtes POST couvrent tout le Québec | 10 397 fiches brutes → **3 415 entreprises uniques**, 812 avec site web ; nom, adresse, municipalité, région, CP, tél, site, certificateur, date | Pas de robots.txt (404). Outil gouvernemental de consultation publique : « outil officiel pour repérer les produits bio du Québec ». Données factuelles (© factuel non protégeable) ; crédit CARTV consigné dans l'évidence et le champ `certifications` | **Connectée** (`cartv_bio`) — découverte + champ `certifications` structuré. Refresh recommandé : semestriel (7 POST) |49| **CTAQ — répertoire des membres (conseiltaq.com)** | Endpoint AJAX public `/ajax-search-organisation` (HTML paginé), fiches `/organisation/<id>` | **648 membres transformateurs** (les « Associés » = fournisseurs de services, exclus) ; site web sur la fiche | robots.txt : `Disallow:` (rien d'interdit). Répertoire public « effectuez des recherches par association ou type de membre » | **Connectée** (`ctaq`) — 0,4 s entre fiches, cache. Refresh : annuel |50| **Vendors des collectifs connectés** (Paperole, Galerie Iris, Wachiya) | Champ `vendor` des produits DÉJÀ synchronisés (aucune requête aux collectifs) + résolution du site officiel par candidats `<slug>.com/.ca` validés par titre de page | ~630 marques distinctes, sondes capées | Réutilisation de nos propres données de sync ; le site officiel résolu est ensuite vérifié comme toute boutique (preuve QC exigée sur le site) | **Connectée** (`vendors_collectifs`) — patron Signé Local prouvé |51| **CIBIM (cibim.org/membres)** | Page publique | 2 liens externes seulement (liste principalement sans sites) | robots Yoast : rien d'interdit | **Connectée** mais rendement marginal — consigné |52| **Éleveurs de canards et d'oies du Québec (canardduquebec.com)** | Page publique /nos-producteurs/ | 2 liens externes | robots : wp-admin seulement | **Connectée**, rendement marginal |53| **Le bon goût frais des Îles (lebongoutfraisdesiles.com)** | Page publique | 1 lien externe (fiches membres sans sites) | robots Yoast : rien d'interdit | **Connectée**, rendement marginal |54| **Acheter québécois — catégories Montréal (« Fabriqué à Montréal »)** | Pages catégories publiques paginées | 62 domaines candidats montréalais | robots.txt : calendrier exclu seulement ; source déjà connectée en vague 1 (fiches individuelles) | **Connectée** (`acheterquebecois_mtl`) — comble la sous-représentation montréalaise |55| **epipresto.ca** (place de marché d'épiceries locales QC) | `/products.json` répond **200 via curl** (le verify de 2026-08 avait conclu « morte » sur un 429 : gotcha TLS python-requests) | ~14 sitemaps produits ≈ 14 000 produits | robots.txt Shopify standard (interstitiel de vérification sur robots ; catalogue public OK) | **Connectée**, `store_kind=collectif`, classe C (produits pas tous fabriqués au QC — badgés) |56| **laboiteagrains.com** (épicerie santé, Gatineau) | idem — 200 via curl | ~22 sitemaps ≈ 22 000 produits | idem | **Connectée**, `store_kind=revendeur`, classe C |5758### Vague 5 (évaluées et connectées le 2026-08-21 — découverte Serper/Tavily)5960| Source | Accès constaté | Volume mesuré | robots/CGU (2026-08-21) | Décision |61|---|---|---|---|---|62| **ModeMTL (modemtl.com/repertoire-mode-locale-mtl/)** | Page WordPress publique, liens directs vers les sites des marques | **52 domaines externes uniques** sur la page répertoire | robots.txt WP standard (wp-admin, add-to-cart) — la page répertoire n'est pas interdite ; sitemaps Yoast publics. Répertoire de promotion de la mode locale | **Connectée** (`modemtl`) — région Montréal induite. Refresh : annuel |63| **Bœuf d'ici (boeufdici.com/repertoire/)** | Page WordPress publique, liens directs | **43 domaines externes uniques** | robots.txt : wp-admin seulement. Répertoire de promotion des producteurs vendant à la ferme | **Connectée** (`boeufdici`). Refresh : annuel |64| **AFMQ (afmq.com/liste_compagnies)** | Liste publique → ~100 fiches `/liste_compagnies/profil/<id>` avec site web, catégories de produits | ~100 fabricants de meubles membres | robots.txt : `/catalog/`, `/scripts/`, `/images/`, uploads sécurisés interdits — **jamais requêtés** ; la liste et les profils sont publics (vitrine des membres) | **Connectée** (`afmq`) — 0,4 s entre fiches. Refresh : annuel |65| **Apiculteurs et apicultrices du Québec (apiculteursduquebec.com)** | Répertoire Drupal public « route du miel », paginé par région (`/membres/region/<id>`) : nom, adresse+CP, site web par carte membre | 17 régions × ~10 fiches/page ; membres sans site ignorés | robots.txt Drupal standard (admin/user) — pages membres publiques. Répertoire de promotion des entreprises apicoles | **Connectée** (`apiculteursduquebec`) — 0,5 s entre pages. Refresh : annuel |66| **Vendors d'EPIPRESTO** (place de marché connectée en vague 4) | Champ `vendor` des produits DÉJÀ synchronisés (aucune requête à epipresto) + résolution `<slug>.com/.ca` validée par titre de page — patron vendors_collectifs prouvé | 273 vendeurs distincts, sondes capées à 400 ; vendeurs génériques (épiceries, pharmacies, « Général ») filtrés | Réutilisation de nos propres données de sync ; site résolu vérifié comme toute boutique | **Connectée** (`vendors_epipresto`) — prior **E 0.4** (vendeurs hétérogènes : revendeurs ET producteurs), preuve QC exigée sur le site |6768### Canal d'auto-inscription (2026-08-19)69« Inscrire mon atelier » (`/inscrire` → `POST /api/inscriptions`) : dépôt par70l'artisan lui-même = consentement explicite. Quarantaine `pending`,71**validation manuelle** avant toute publication (vérification du site par le72pipeline, preuve de fabrication québécoise). Anti-abus : honeypot + 573dépôts/24 h/IP. Journal `logs/inscriptions.log`.7475## 3. Sources évaluées et ÉCARTÉES (avec raison, datées)7677| Source | Date | Raison de l'écartement |78|---|---|---|79| **REQ / Registraire des entreprises (open data, SCIAN 31-33)** | 2026-08-19 | Double blocage : (1) téléchargement derrière un **challenge Cloudflare** (« Just a moment », `cf-mitigated: challenge` — constaté au GET comme au HEAD) ; (2) licence **CC-BY-NC-SA 4.0** : clause *non commerciale* incompatible avec l'intégration dans une plateforme du Groupe Ka. De plus, le fichier ne contient aucun site web (résolution nom→site à très faible rendement). Ne pas reconnecter sans changement de licence. |80| **UPA — Mangeons local** | 2026-08-19 | Application web **décommissionnée** : `mangeonslocal.upa.qc.ca` et `mangeonslocal.ca` redirigent vers `upa.qc.ca/citoyen` ; l'API historique (`/api/page/get-all`, archive 2025) répond 301. Il ne reste que l'app mobile (API non publique). La page UPA « trouver une ferme » renvoie vers des répertoires sectoriels — les plus utiles ont été connectés à la place (cibim, canardduquebec, lebongoutfraisdesiles) ; la plupart des autres étaient déjà couverts (arrêts gourmands, créateurs de saveurs, garde-manger, gaspésie gourmande, goûtez-y…). |81| **Salon des métiers d'art du Québec** | 2026-08-19 | `salondesmetiersdart.com` = coquille vide (« Simple index.html! ») avec robots Cloudflare « content signals ». La vraie liste d'exposants vit sur **metiersdart.ca** (`repertoire_artisan.php`), c'est-à-dire le répertoire CMAQ **déjà couvert** (cmaq_firecrawl + search_sweep_cmaq, ~1 880 fiches). Rien de neuf à prendre. |82| **Goûtez Lanaudière** | 2026-08-19 (re-test demandé par l'audit) | Le site WordPress vit, mais la liste des membres est toujours servie par un **CRM Eudonet** dont l'URL jeton (`w12.eudonet.com/XRM/frm?tok=…`) répond **404**. Toujours en panne — re-tester dans 6 mois. |83| **PME MTL « Fabriqué à Montréal »** | 2026-08-19 | **Aucun répertoire public** : pmemtl.com (sitemap complet parcouru, 713 URLs) n'a que des billets de blogue ; `fabriqueamontreal.ca` / `madeinmontreal.org` ne résolvent plus. Remplacé par les catégories montréalaises d'Acheter québécois (connectées ci-dessus). |84| **Etsy** | 2026-08 (audit, inchangé) | HTTP 403 anti-bot systématique ; l'API officielle v3 exige clé développeur + CGU restrictives sur la réutilisation. Écartée. |85| **Ma Zone Québec** | 2026-08 (audit, inchangé) | Coquille Drupal vide côté serveur — plus de contenu à moissonner. |86| **Panier Bleu** | 2026-08 (audit, inchangé) | Service fermé en 2023 — source morte. |87| **Simons — Fabrique 1840** | non connectée | Vitrine commerciale de Simons ; CGU maison, valeur limitée (~150 marques pas toutes QC). À réévaluer seulement si besoin (prendre alors la liste de marques, jamais le catalogue). |88| **MAPAQ — Répertoire des aliments québécois** | non connectée (réserve) | repertoirealimentsquebecois.gouv.qc.ca répond ; recoupe largement Aliments du Québec (déjà couvert). Candidat de réserve documenté. |89| **ebenistes-quebec.com** | 2026-08-21 | Coquille lead-gen : la page « répertoire des ébénistes » ne contient **aucune fiche extractible** (0 lien interne de profil, 3 liens externes = agence web/école/thème). Rien à moissonner. |90| **microentreprendre.ca** | 2026-08-21 | Répertoire chargé en JS **sans liens vers les sites web** des entreprises (552 Ko de HTML, 1 seule mention « site web »). De plus, « accompagné par un organisme de microcrédit » n'est pas une preuve de fabrication québécoise. |91| **index-design.ca (répertoire adresses design)** | 2026-08-21 | Répertoire **non exclusivement québécois** : mêle fabricants QC et fournisseurs internationaux (Blum, Caesarstone, American Biltrite…). Bruit trop élevé pour un moissonnage de liens ; réévaluer seulement avec un filtrage fiche par fiche. |92| **chantier.qc.ca (répertoire économie sociale)** | 2026-08-21 | Répertoire servi par admin-ajax WordPress (5 liens externes dans le HTML) et entreprises d'économie sociale majoritairement **non fabricantes** (services, culture, insertion). Coût/rendement défavorable. |93| **apdiq.com / designmontreal.com** | 2026-08-21 | Bottins de **designers de services** (design d'intérieur, agences) — pas de boutiques de produits fabriqués. Hors périmètre Fabri-Ka. |9495## 4. Fréquences et budgets9697- Sync catalogues : 6 h (watch PM2), caps par connecteur (`max_pages` 200).98- Passes d'enrichissement/expansion manuelles : ~2 500 requêtes max par99  chantier, caches disque rejouables (`data/raw/`, `data/verify_cache/`,100  `data/enrich_cache/`).101- Annuaires : pas de re-moisson automatique — refresh manuel102  semestriel/annuel par source (voir tableaux).103