docs: guides d’interconnexion (Bodacc/Inforgreffe/Adresses) + spec UI Extraction; UI: liens PDF/JSON entités
This commit is contained in:
parent
42e5afceca
commit
39c452002a
20
docs/extraction_ui_spec.md
Normal file
20
docs/extraction_ui_spec.md
Normal file
@ -0,0 +1,20 @@
|
||||
### Spécification UI – Onglet Extraction
|
||||
|
||||
Objectifs:
|
||||
- Éditer/supprimer les entités extraites (personnes/adresses/entreprises)
|
||||
- Lancer la collecte externe par entité, afficher le statut, proposer le PDF/JSON
|
||||
- Déclencher automatiquement la collecte si l’entité n’a pas encore de données enrichies
|
||||
|
||||
Comportements:
|
||||
- Bouton Collecter: passe en “Collecte…” (state=running) puis “OK” à la fin, avec lien “Voir PDF” et “Voir JSON”.
|
||||
- Polling réduit: 1,5 s × 6 tentatives, puis “Relancer”.
|
||||
- Boutons Enregistrer/Supprimer ne déclenchent pas de re-scan; ils patchent le cache uniquement.
|
||||
|
||||
Endpoints utilisés:
|
||||
- POST /enrich/:kind → démarre la collecte
|
||||
- GET /enrich/:kind/status → état et sources
|
||||
- GET /enrich/:kind/pdf → PDF généré
|
||||
|
||||
Accessibilité:
|
||||
- Actions groupées, labels explicites, tooltips d’aide, responsive.
|
||||
|
||||
27
docs/interconnexions/adresses.md
Normal file
27
docs/interconnexions/adresses.md
Normal file
@ -0,0 +1,27 @@
|
||||
### Adresses – Cadastre / GéoRisque / GéoFoncier
|
||||
|
||||
Objectif: géocoder l’adresse, identifier les parcelles cadastrales, lister les risques majeurs, et produire un PDF de synthèse avec liens sources.
|
||||
|
||||
Entrées minimales:
|
||||
- street, postalCode, city, country ('France')
|
||||
|
||||
Accès:
|
||||
- Géocodage: BAN/Adresse DataGouv (open data)
|
||||
- GéoRisque: couches publiques par bbox
|
||||
- Cadastre: plan cadastral open data (WMS/WMTS)
|
||||
- GéoFoncier: page publique par lat/lon (scraping léger si autorisé)
|
||||
|
||||
Sortie (cache JSON):
|
||||
```
|
||||
extraction.entities.addresses[i].enrichment.address = {
|
||||
state,
|
||||
startedAt, finishedAt,
|
||||
geocode: { lat, lon, score },
|
||||
cadastre: [{ section, parcelle, commune }],
|
||||
risks: [{ type, level, sourceUrl }],
|
||||
pdfPath
|
||||
}
|
||||
```
|
||||
|
||||
PDF: synthèse (adresse normalisée, mini-carte, risques) + parcelles.
|
||||
|
||||
27
docs/interconnexions/bodacc.md
Normal file
27
docs/interconnexions/bodacc.md
Normal file
@ -0,0 +1,27 @@
|
||||
### Bodacc – Gel des avoirs (Personnes)
|
||||
|
||||
Objectif: vérifier l’existence de mentions de gel des avoirs pour une identité (NOM/PRÉNOM), consigner les hits (références, lien source) et produire un PDF de synthèse.
|
||||
|
||||
Entrées minimales:
|
||||
- lastName (obligatoire, uppercase recommandé)
|
||||
- firstName (optionnel)
|
||||
- métadonnées utiles: date de naissance, pays
|
||||
|
||||
Accès:
|
||||
- Sans clé (temporaire): scraping léger avec politesse (User-Agent dédié, 1 req/s, backoff).
|
||||
- Avec API (si disponible): clé API, endpoint de recherche nom/prénom.
|
||||
|
||||
Sortie (dans le cache JSON):
|
||||
```
|
||||
extraction.entities.persons[i].enrichment.bodacc = {
|
||||
state: 'idle'|'running'|'done'|'error',
|
||||
startedAt, finishedAt,
|
||||
hits: [{ name, date, sourceUrl, matchScore }],
|
||||
pdfPath
|
||||
}
|
||||
```
|
||||
|
||||
PDF: une page de synthèse (identité + hits) + annexes si autorisé.
|
||||
|
||||
Limites: homonymies; respecter le cadre légal (RGPD) et citer les sources.
|
||||
|
||||
26
docs/interconnexions/inforgreffe.md
Normal file
26
docs/interconnexions/inforgreffe.md
Normal file
@ -0,0 +1,26 @@
|
||||
### Inforgreffe – Extrait Kbis (Entreprises) (+ Societe.com)
|
||||
|
||||
Objectif: récupérer une fiche société (forme, siren, dirigeants, adresse) et idéalement un extrait Kbis.
|
||||
|
||||
Entrées minimales:
|
||||
- name (raison sociale) OU siren/siret
|
||||
|
||||
Accès:
|
||||
- Sans clé (temporaire): recherche Societe.com (résumé public) et page Inforgreffe (si visible) en scraping léger (1 req/s, backoff).
|
||||
- Avec API: clé/secret; endpoints “Profil entreprise”, “Kbis PDF”.
|
||||
|
||||
Sortie (cache JSON):
|
||||
```
|
||||
extraction.entities.companies[i].enrichment.company = {
|
||||
state,
|
||||
startedAt, finishedAt,
|
||||
sources: ['societe_com','inforgreffe'],
|
||||
profile: { siren, siret, forme, capital, adresse, dirigeants: [] },
|
||||
pdfPath
|
||||
}
|
||||
```
|
||||
|
||||
PDF: synthèse (identité, dirigeants) + annexes Kbis si autorisé, sinon résumé horodaté + liens sources.
|
||||
|
||||
Conformité: respecter CGU, citer les sources, logs de collecte.
|
||||
|
||||
@ -238,6 +238,8 @@ export default function ExtractionView() {
|
||||
}, 1800)
|
||||
}}
|
||||
>{enriching[`p-${i}`]==='running' ? 'Collecte…' : 'Collecter'}</Button>
|
||||
<Button size="small" component="a" href={`/api/folders/${currentFolderHash}/files/${extraction.fileHash}/enrich/person/pdf`} target="_blank" rel="noopener noreferrer">Voir PDF</Button>
|
||||
<Button size="small" component="a" href={`/api/folders/${currentFolderHash}/files/${extraction.fileHash}/enrich/person/status`} target="_blank" rel="noopener noreferrer">Voir JSON</Button>
|
||||
<Button size="small" variant="outlined" disabled={savingKey===`p-${i}`}
|
||||
onClick={async ()=>{
|
||||
try{
|
||||
@ -288,6 +290,8 @@ export default function ExtractionView() {
|
||||
}, 1800)
|
||||
}}
|
||||
>{enriching[`a-${i}`]==='running' ? 'Collecte…' : 'Collecter'}</Button>
|
||||
<Button size="small" component="a" href={`/api/folders/${currentFolderHash}/files/${extraction.fileHash}/enrich/address/pdf`} target="_blank" rel="noopener noreferrer">Voir PDF</Button>
|
||||
<Button size="small" component="a" href={`/api/folders/${currentFolderHash}/files/${extraction.fileHash}/enrich/address/status`} target="_blank" rel="noopener noreferrer">Voir JSON</Button>
|
||||
<Button size="small" variant="outlined" disabled={savingKey===`a-${i}`}
|
||||
onClick={async ()=>{
|
||||
try{
|
||||
@ -335,6 +339,8 @@ export default function ExtractionView() {
|
||||
}, 1800)
|
||||
}}
|
||||
>{enriching[`c-${i}`]==='running' ? 'Collecte…' : 'Collecter'}</Button>
|
||||
<Button size="small" component="a" href={`/api/folders/${currentFolderHash}/files/${extraction.fileHash}/enrich/company/pdf`} target="_blank" rel="noopener noreferrer">Voir PDF</Button>
|
||||
<Button size="small" component="a" href={`/api/folders/${currentFolderHash}/files/${extraction.fileHash}/enrich/company/status`} target="_blank" rel="noopener noreferrer">Voir JSON</Button>
|
||||
<Button size="small" variant="outlined" disabled={savingKey===`c-${i}`}
|
||||
onClick={async ()=>{
|
||||
try{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user