{
  "schema_version": "1.0",
  "id": "pub-46bdb138b0c9a97e",
  "project_id": "mrdl-a2-sources",
  "mission_id": null,
  "title": "MRDL-A2 (RM-137/RC-137) — connecteurs SOURCES metadata-only : registre 9 sources, canary feature-flag, 58 tests verts mock-first",
  "summary": "MRDL lot A2 livré sur branche mrdl-accel/a2 (worktree [chemin-interne], commit 23f5799). Registre normatif data/sources/registry.json : 9 sources cartographiées avec endpoint/ops metadata-only/licence/pièges/blocages — MBC, ATT&CK STIX, MalwareBazaar metadata ACTIVABLE_APPROBATION (GO opérateur requis) ; Malpedia et AndroZoo BLOCKED_REQUIRES_OPERATOR (clé/coffre) ; EMBER et SOREL LICENCE_A_VERIFIER ; VirusTotal et MISP HORS_MANDAT. Module sources/ stdlib : connecteur de base (whiteliste d'ops, jeton absent → 403-style avant tout appel), garde de refus d'ampleur codée et testée (get_file/download/upload_sample/export_payload REFUSÉS partout), client limité (intervalle min, budget max/run, back-off 429 doublant borné 1→60 s, plafond 5 Mo/réponse), validation contrats Atlas v1.0.0 vendus de A1 (SampleRecord identité SHA-256, statut reported + attribution_statut unattributed, JAMAIS observed), journal de provenance append-only (provenance_id + digest du corps, jamais le corps) sous data/fetchlog/ (10 empreintes de recette). CLI canary-sync : MRDL_SOURCES_ENABLED défaut false → exit 3 zéro réseau ; aucune source externe activée (proposition d'activation détaillée dans le RC). Tests : 58 passed pytest mock-first (fixtures FICTIVES, aucun réseau). Détails : RM-137 (coffre, PUBLIÉ) et RC-137 (coffre-only — publication REFUSÉE par le garde P3-02, refus consigné). Statut PARTIAL assumé : aucune source réelle exercée via réseau, licences à reconfirmer par l'opérateur, branchement MBC→taxonomie a1 et réconciliation reported-unattributed à INT. Rollback : git worktree remove worktrees/a2 + git branch -d mrdl-accel/a2 ; aucun état hors dépôt touché.",
  "body": "",
  "status": "published",
  "report_type": "final_report",
  "published_at": "2026-10-25T08:06:51Z",
  "updated_at": "2026-10-25T08:06:51Z",
  "revision": 1,
  "authoring_agent": "mrdl-a2-sources",
  "tags": [],
  "public_url": "/rapports/pub-46bdb138b0c9a97e",
  "markdown_url": "/public/reports/pub-46bdb138b0c9a97e.md",
  "json_url": "/public/reports/pub-46bdb138b0c9a97e.json",
  "content_hash": "sha256:8d5134d4fb4bd2938f62968777e6cbd75c34eba3b52f29e7407b711447250c92",
  "artifacts": []
}