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
3 h agolast push
Python 38.4% HTML 30.3% TypeScript 17.2% CSS 11% JavaScript 3.2%
13.6 KB

# Fabri-KA — Conformité des sources (CGU, robots.txt, licences)

Dernière revue complète : 2026-08-19 (Phase 3 — expansion des sources). Chaque source est évaluée AVANT connexion : accès réel constaté, volume mesuré, robots.txt/CGU lus à la date indiquée, décision consignée. Principes transverses : politesse réseau (délais entre requêtes, caches disque, retries doux), aucune donnée derrière authentification, crédit de la source conservé dans discovery_sources/origin_evidence de chaque fiche, retrait sur demande d'un ayant droit.

# 1. Base du catalogue — plateformes e-commerce des boutiques

Le catalogue produit provient des endpoints publics des boutiques elles-mêmes (pas d'annuaire tiers) :

Plateforme Endpoint Base de conformité
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.
WooCommerce /wp-json/wc/store/v1/products Store API publique conçue pour l'affichage sans authentification.
Wix GraphQL storefront public (jeton public /_api/v1/access-tokens) API destinée au frontend public de la boutique.
Squarespace ?format=json Rendu JSON public des pages boutique.
Square endpoint liste public (include=images,options) Vitrine publique Square Online.
— Scrapfly (repli ponctuel) Uniquement sur des pages publiques, dans les mêmes limites.

Fréquence : cycle complet toutes les 6 h (PM2 watch 360), ~1 570 boutiques, retrait automatique des produits disparus (délai de grâce). Les boutiques dont le domaine ne répond plus sont dépubliées (« présumée fermée », fail_streak ≥ 12 syncs consécutifs ≈ 3 jours) et réintégrées automatiquement dès qu'elles répondent.

# 2. Annuaires et répertoires connectés (découverte de fabricants)

# Vagues 1–3 (rappel, revue 2026-08-12 → 2026-08-18)

Aliments du Québec, Les Produits du Québec, Fromages d'ici, Érable d'ici, Vins/Cidre/Distilleries du Québec, AMBQ, Économusées/Artisans à l'œuvre, CMAQ (metiersdart.ca, via Firecrawl), ICQ, Acheter québécois, Signé Local (vendors), marchés publics (AMPQ), ~15 annuaires régionaux gourmands, Pages Vertes, MIAM Mauricie, Garde-Manger du Québec, Terroir et Saveurs. Tous : répertoires publics de promotion des producteurs — la mise en visibilité des membres est leur raison d'être ; robots permissifs constatés à la connexion ; on n'extrait que nom/lien/coordonnées publiques, jamais le contenu éditorial. Décision : connectés (inchangé).

# Vague 4 (évaluées et connectées le 2026-08-19)

Source Accès constaté Volume mesuré robots/CGU (2026-08-19) Décision
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)
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
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é
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é
É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
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
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
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)
laboiteagrains.com (épicerie santé, Gatineau) idem — 200 via curl ~22 sitemaps ≈ 22 000 produits idem Connectée, store_kind=revendeur, classe C

# Vague 5 (évaluées et connectées le 2026-08-21 — découverte Serper/Tavily)

Source Accès constaté Volume mesuré robots/CGU (2026-08-21) Décision
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
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
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
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
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

# Canal d'auto-inscription (2026-08-19)

« Inscrire mon atelier » (/inscrire → POST /api/inscriptions) : dépôt par l'artisan lui-même = consentement explicite. Quarantaine pending, validation manuelle avant toute publication (vérification du site par le pipeline, preuve de fabrication québécoise). Anti-abus : honeypot + 5 dépôts/24 h/IP. Journal logs/inscriptions.log.

# 3. Sources évaluées et ÉCARTÉES (avec raison, datées)

Source Date Raison de l'écartement
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.
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…).
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.
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.
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).
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.
Ma Zone Québec 2026-08 (audit, inchangé) Coquille Drupal vide côté serveur — plus de contenu à moissonner.
Panier Bleu 2026-08 (audit, inchangé) Service fermé en 2023 — source morte.
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).
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é.
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.
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.
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.
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.
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.

# 4. Fréquences et budgets

  • Sync catalogues : 6 h (watch PM2), caps par connecteur (max_pages 200).
  • Passes d'enrichissement/expansion manuelles : ~2 500 requêtes max par chantier, caches disque rejouables (data/raw/, data/verify_cache/, data/enrich_cache/).
  • Annuaires : pas de re-moisson automatique — refresh manuel semestriel/annuel par source (voir tableaux).