Extracteurs
Un extracteur est un composant réutilisable, doté d’un nom stable, qui collecte un type de données précis. Avec Guida 0.9, les descripteurs résident dans l’espace de travail. Guida les charge dans un catalogue consultable et permet de les valider, de les certifier et de comparer leurs résultats sans recourir à des listes de contrôle informelles.
Guida Complete et Guida Node exécutent les extracteurs. Guida Control présente les mêmes contrats par Remote Ops, sans entretenir un second catalogue.
Descripteur et implémentation
Section intitulée « Descripteur et implémentation »Le descripteur constitue le contrat public. Il identifie l’implémentation, la source, le flux de travail, la file d’attente, les entrées par défaut, les domaines cibles, le contrat de sortie et les preuves demandées. L’implémentation reste du code ordinaire de l’espace de travail.
{ "$schema": "../../../extractors.schema.json", "id": "careers.example.jobs", "profile": "web.discovery.browser", "label": "Example engineering jobs", "domain": "careers", "workflowName": "careers-example", "queueName": "careers_example", "implementation": { "module": "lib/careers-example-worker.js", "export": "discoverExampleJobs", "language": "javascript" }, "source": { "kind": "web", "url": "https://example.com/careers" }, "targetDomains": ["example.com"], "input": { "defaultUrl": "https://example.com/careers", "defaultCompanyName": "Example", "defaultSlug": "example" }, "evidence": { "requiresPageLoaded": true, "requiresResultEvidence": true, "allowQualifiedEmpty": true }}Un petit fichier racine extractors.json peut inclure les descripteurs,
sélectionner des profils communs et répartir un grand catalogue en segments
déterministes. Chaque entrée conserve son identité et son chemin d’origine.
Des contrats avant l’exécution
Section intitulée « Des contrats avant l’exécution »La validation repère les descripteurs incorrects, les ID en double, les implémentations absentes, les profils introuvables, les règles de domaine invalides et les contrats d’entrée ou de sortie incompatibles. Les contrôles de compatibilité rendent explicite la limite entre un extracteur et ses consommateurs.
L’API de scripting propose des lectures synchrones avec
g.extractors.list(), g.extractors.get() et
g.extractors.validate(). Les clients distants utilisent
workspace.extractors.* et workspace.extractors.contracts.*.
Certification fondée sur des preuves
Section intitulée « Certification fondée sur des preuves »La certification est une vérification opérationnelle délimitée, pas un label définitif. Quick vérifie volontairement peu de cibles pour donner un retour rapide; Coverage élargit la vérification dans les limites déclarées. Un résultat vide n’est acceptable que si le chargement est attesté et si le descripteur autorise explicitement ce cas. Les sélecteurs doivent avoir été observés. Guida consigne l’exhaustivité et toute troncature pour ne pas présenter une vérification partielle comme une couverture complète.
Commencez par workspace.extractors.certification.plan. Le plan distingue les
éléments exécutables des éléments bloqués et précise les limites. Le démarrage,
l’annulation et l’export des preuves restent soumis aux règles et confirmations
locales de Guida.
Guida sépare le dernier résultat de l’historique qui l’explique. Exécutions,
résultats par extracteur, statistiques, anomalies, évolutions de contrat et
preuves exportées restent consultables. La politique de conservation réside
dans l’espace de travail et les données opérationnelles dans operations.db.
Le catalogue et les interfaces opérationnelles ont été validés avec 5 000 extracteurs au cours de tests déterministes sur un seul hôte. Ce chiffre ne promet ni 5 000 sessions de navigateur simultanées ni une capacité de flotte Enterprise.
Une pipeline sémantique relie la
sortie contractuelle aux validateurs, aux mappers et aux destinations. Les
pipelines générées emploient des liaisons explicites comme $extractor.id;
Guida ne déduit rien du nom des fichiers ou des dossiers.