Vue d'ensemble
Fonctionnement
Section intitulée « Fonctionnement »Inqase est une plateforme d’assurance cyber pour les PME belges. Quatre profils l’utilisent : le prospect (parcours public d’offre), le client et le courtier (un portail chacun), et l’équipe Inqase (back-office).
flowchart LR
people["Prospect, client,<br/>courtier, équipe Inqase"]
inqase["Plateforme Inqase"]
stripe["Stripe"]
docusign["DocuSign"]
cf["Cloudflare"]
reg["CBE, Pappers"]
hiscox["Hiscox"]
people -->|utilisent portails et parcours| inqase
inqase -->|crée les paiements| stripe
stripe -->|notifie les paiements| inqase
inqase -->|envoie les enveloppes| docusign
docusign -->|notifie la signature| inqase
inqase -->|envoie les emails| cf
inqase -->|recherche les entreprises| reg
inqase -->|exporte le fichier bordereau| hiscox
classDef status fill:#9ce6ff,stroke:#2c97bb,color:#1c4657
classDef external fill:#e5e7eb,stroke:#9ca3af,color:#374151
class inqase status
class people,stripe,docusign,cf,reg,hiscox external
Vue par composant : seul le backend parle aux utilisateurs métier, à Stripe, à DocuSign et aux registres d’entreprises. Il pilote le scanner (le monitoring), qui ne l’appelle jamais.
flowchart LR
visitor["Visiteur"]
users["Client, courtier,<br/>équipe"]
ai["Assistant IA<br/>externe"]
landing["Site vitrine"]
backend["Backend<br/>application métier"]
pg["Base de données"]
redis["File d'attente<br/>des tâches"]
mon["Monitoring<br/>scan de sécurité"]
visitor -->|navigue| landing
landing -->|envoie les formulaires| backend
users -->|utilisent les portails| backend
ai -->|interroge Inqase| backend
backend -->|lit et écrit| pg
backend -->|met des tâches en attente| redis
backend -->|appelle l'interface avec un jeton| mon
classDef status fill:#9ce6ff,stroke:#2c97bb,color:#1c4657
classDef done fill:#b3e65f,stroke:#6f9a24,color:#2c4300
classDef external fill:#e5e7eb,stroke:#9ca3af,color:#374151
class landing,backend,mon status
class pg,redis done
class visitor,users,ai external
Le point d’entrée par lequel un assistant IA externe interroge Inqase (le serveur MCP) tourne dans le même programme que le backend. Il a sa propre authentification.
Les trois dépôts
Section intitulée « Les trois dépôts »| Dépôt | Rôle | Section |
|---|---|---|
| Backend | Application métier : dossiers, offres, polices, paiements, courtiers, commissions, bordereaux, portails, accès pour les assistants IA | Backend |
| Monitoring | Scan passif de la surface exposée sur Internet, constats, score de 0 à 100, alertes, aperçu rapide (flash scan) | Monitoring |
| Site vitrine (landing) | Site en français, néerlandais et anglais ; les formulaires envoient leurs données au backend | Landing |
La correspondance avec les noms de dépôts et les technologies est dans le tableau « Correspondance technique » en bas de page.
Contrat entre le backend et le monitoring
Section intitulée « Contrat entre le backend et le monitoring »Le backend appelle le service de monitoring par son interface, avec un jeton d’accès secret. Le monitoring n’appelle jamais le backend.
| Sens | Quoi | Déclencheur |
|---|---|---|
| Backend vers monitoring | Créer et mettre à jour clients et domaines | Toutes les heures |
| Backend vers monitoring | Lire tableau de bord, alertes, scans | À la demande, en cache |
| Backend vers monitoring | Récupérer les alertes à notifier | Toutes les 10 minutes |
| Backend vers monitoring | Aperçu rapide (flash scan) et lots de scans courtier | Parcours d’offre, import courtier |
| Shodan vers monitoring | Notification automatique de bannière | Alerte Shodan |
- Les emails de monitoring sont tous envoyés par le backend : voir Emails.
- Identifiants partagés : le « client » du monitoring correspond à l’entreprise du backend, repérée par l’identifiant de cette entreprise, que la tâche de synchronisation envoie ; les domaines sont la clé des scans et des aperçus rapides.
Pourquoi : le monitoring ne connaît ni la langue du destinataire ni le courtier, donc il n’envoie rien. Comment la synchronisation est pilotée : Le backend pilote le monitoring.
Services externes
Section intitulée « Services externes »| Service | Utilisé par | Pour |
|---|---|---|
| Stripe | backend | Paiements, avec notifications automatiques de paiement |
| DocuSign | backend | Signature des contrats, avec notification automatique de signature |
| Hiscox | backend (fichier uniquement) | Bordereau mensuel en fichier Excel, pas d’interface |
| Cloudflare | tous | Envoi d’emails, anti-robot, hébergement du monitoring et du site |
| CBE, Pappers | backend | Recherche d’entreprises belges et françaises |
| OpenAI | backend | Fournisseur d’IA par défaut (assistant, communication courtier) |
| Slack, Sentry, Nightwatch | backend | Alertes internes, remontée d’erreurs, supervision de l’application |
| Google Analytics 4 | landing, backend | Audience après consentement, événement d’achat côté serveur |
| Fournisseurs de scan | monitoring uniquement | Shodan, AbuseIPDB, IntelX, Hudson Rock, GreyNoise, Google Web Risk, CertSpotter, ProjectDiscovery Chaos, HackerTarget, SecurityTrails, crt.sh, RDAP, ransomware.live, NVD, CISA KEV |
Règles et pièges
Section intitulée « Règles et pièges »- Un seul propriétaire par fait : cette section ne contient que ce qui traverse les dépôts. Le détail de chaque dépôt vit dans sa propre section.
- Une panne du monitoring dégrade les pages de monitoring et les emails d’alerte, pas les paiements ni les polices.
- Le jeton d’accès partagé entre backend et monitoring change des deux côtés en même temps : voir Secrets et clés.
- Mots et statuts : Glossaire, Cycle de vie d’une offre.
Où dans le code
Section intitulée « Où dans le code »backend/app/Services/Monitoring/MonitoringClient.phpbackend/routes/console.phpmonitoring/wrangler.toml
Questions ouvertes
Section intitulée « Questions ouvertes »- L’hébergement de production (Hetzner, Ploi) et la juridiction UE de D1 ne sont pas visibles dans les dépôts : la configuration Docker ne sert qu’au développement local et celle du monitoring n’a pas de juridiction.
- Le canal réel d’envoi du fichier bordereau à Hiscox est hors plateforme.
- Le réglage de la file d’attente de l’exemple de configuration est la base de données ; la valeur en production est inconnue (Redis est configuré).
Correspondance technique
Section intitulée « Correspondance technique »| Nom courant | Identifiant technique |
|---|---|
| Backend | dépôt backend : Laravel 12, PHP 8.4, Inertia 2, Vue 3, PostgreSQL, Redis (Horizon) |
| Monitoring | dépôt monitoring : Cloudflare Workers, Hono, D1, Queues |
| Site vitrine | dépôt landing-page : Astro 5, Cloudflare Pages |
| Accès pour assistants IA | serveur MCP (/mcp), authentification OAuth 2 via Passport |
| Jeton d’accès du monitoring | MONITORING_API_TOKEN, interface /api/v1/... |
| Synchronisation toutes les heures | monitoring:sync, tâche SyncCompanyToMonitoring |
| Alertes toutes les 10 minutes | monitoring:dispatch-notifications |
| Résumés mensuels | monitoring:send-summaries |
| Aperçu rapide | POST /api/v1/flash-scan |
| Notification Stripe, DocuSign | POST /stripe/webhook, POST /api/v1/webhooks/docusign |
| Identifiant d’entreprise partagé | externalId |