Architecture
Huit couches de défense en profondeur dans un seul binaire, derrière un unique point d'entrée. L'exécution en bac à sable et la vérification formelle des politiques sont consultatives : elles annotent la trace et ne modifient jamais le verdict.
Les piliers
Noyau d'application
Application souple multiplateforme aujourd'hui ; le véritable chargeur eBPF/LSM relève de l'offre Enterprise.
DisponibleReçus signés
Ed25519 et journal en ajout seul chaîné par hachage, vérifiés par rejeu.
DisponibleLangage de politique Dictum
DSL typé, vérificateur Hindley-Milner, génération WASM optionnelle.
DisponiblePlugins attestés
Vérification Sigstore hors ligne et SBOM CycloneDX, manifestes signés en Ed25519.
DisponibleRaisonnement probabiliste
ONNX à fournir soi-même ; une bibliothèque de modèles pré-entraînés figure à la feuille de route Enterprise.
DisponiblePlan visuel
Console opérateur multivue servie par le binaire, avec rapports d'audit téléchargeables.
DisponibleMaillage de gouvernance
Un maillage multirégion actif-actif figure à la feuille de route Enterprise.
Enterprise · prévuCouches représentatives
Le pipeline évalue chaque action à travers une pile de couches, dans l'ordre :
- Empreinte
- Renseignement sur les menaces
- Limitation de débit
- Pare-feu anti-injection
- Politique
- Bac à sable
L'application des règles dans la version à code source disponible est aujourd'hui souple. L'application stricte au niveau du noyau (eBPF/LSM) relève de l'offre Enterprise et de la feuille de route. La preuve cryptographique, elle, est disponible aujourd'hui et vérifiable depuis un dépôt fraîchement cloné.
La maîtrise des coûts est transversale
La maîtrise des coûts (1.5) est une préoccupation transversale plutôt qu'un huitième pilier : crates/iaga-sentinel-cost/ définit les types monétaires canoniques (micro-USD entiers) et le moteur de tarification local que consomment le pilier des reçus et le pilier du tableau de bord.
Organisation du workspace
iaga-sentinel/
├── crates/
│ ├── iaga-sentinel-core/ # pipeline, serveur, CLI, tableau de bord, AppState
│ ├── iaga-sentinel-receipts/ # Ed25519 + journal chaîné par hachage + rejeu
│ ├── iaga-sentinel-dictum/ # analyseur, évaluateur et vérificateur de types Dictum
│ ├── iaga-sentinel-reasoning/ # indices ML (tract-onnx derrière `ml`)
│ ├── iaga-sentinel-kernel/ # lanceur multiplateforme + structure eBPF
│ ├── iaga-sentinel-cost/ # registre en micro-USD + moteur tarifaire local
│ ├── iaga-sentinel-verify/ # vérificateur autonome de reçus hors ligne
│ └── iaga-sentinel-integrations/ # contrat d’adaptateur partagé + client HTTP asynchrone
├── sdks/ # SDK Python et TypeScript, adaptateurs de frameworks
├── plug-ins/ # plugins publiés + adaptateurs à copier par framework
├── docs/adr/ # 21 ADR (0001 à 0023, sans 0009 ni 0022)
├── media/ # ressources du hero
└── CHANGELOG.md # notes de versionRegistres de conception
Vingt-deux registres de décision d'architecture (0001 à 0023, sans le 0009) documentent chaque choix de conception. Ils se trouvent dans docs/adr sur GitHub :
0001Découpage du workspace0002Décisions de licence et de périmètre0003Conception des reçus signés0004MVP Dictum0005MVP du plan de raisonnement0006MVP du noyau0007Durcissement M5 + posture RC0008Dictum comme moteur de politique en direct0010Clarification de la frontière entre OSS et Enterprise0011Trait Signer + LocalDiskSigner (1.2)0012Rejeu de dérive additif (1.2)0013Attestation Sigstore + SBOM des plugins (1.2)0014Vérificateur de types HM Dictum + échafaudage de génération WASM (1.2)0015Vérificateur de reçus autonome + export d'exécution (1.3)0016Export des reçus vers OpenTelemetry (1.3)0017Manifestes de plugins signés en Ed25519 (1.3)0018Clôture de conformité : is_authoritative des reçus + clés OTel + effacement de l'environnement (1.3.1)0019Crate integrations + contrat d'adaptateur (1.4)0020Maîtrise des coûts (1.5)0021Cache de réponses déterministe (1.5)0023Détection de secrets Dictum + sortie réseau par hôte (1.5.4)
