Modèle de dépôts
| Dépôt | Rôle |
|---|---|
marlinspike | Le dépôt suite, foyer d'intégration et option clone unique. |
marlinspike-msengine | Le dépôt du moteur d'analyse principal. Nom de package interne et CLI : msengine. |
marlinspike-workbench | L'interface web et la surface de collaboration qui lit les artefacts de rapport et peut optionnellement invoquer le moteur. |
marlinspike-plugins | Le monorepo de plugins Python pour les extensions consommatrices de rapports. |
marlinspike-engines | L'espace de travail de moteurs Rust pour les composants face aux paquets et fortement orientés événements. |
Un seul clone pour tout
Le dépôt suite vendore les dépôts de composants via git subtree. Les docs le présentent comme un compromis pratique :
- Les utilisateurs gardent un comportement normal de
git clone. - Les équipes évitent la charge de configuration des sous-modules git.
- Les dépôts de composants peuvent garder leurs propres cycles de version.
- Le dépôt suite peut épingler une combinaison connue pour fonctionner pour les opérateurs qui veulent toute la stack ensemble.
Frontière de contrat
L'artefact de rapport portable est la frontière de passage entre les composants :
msengineproduit un artefact de rapport depuis le trafic capturé.marlinspike-workbenchconsomme cet artefact pour la revue, le triage et la collaboration.- Les plugins Python consomment le même rapport fini et émettent des artefacts sidecar.
- Les moteurs Rust peuvent produire des artefacts en amont ou des flux d'événements qui alimentent le moteur ou d'autres composants.
L'atelier est intentionnellement utilisable même quand le rapport a été généré ailleurs et qu'aucun binaire de moteur local n'est présent.
État de transition actuel
Les docs reconnaissent honnêtement que le dépôt actuel contient encore le code du moteur et de l'atelier pendant que la scission se prépare.
- Le dépôt racine
marlinspikeporte encore le code opérationnel du moteur et de l'interface Flask aujourd'hui. - Le premier préfixe subtree bootstrap est
msengine/. - Jusqu'à la fin de la bascule, le
_ms_engine.pyracine reste la source opérationnelle du moteur. - Le script helper
scripts/sync-msengine-bootstrap.shcopie en miroir le moteur opérationnel vers la copie subtree.
Limites de propriété pour les contributeurs
Les docs de contribution encouragent déjà les développeurs à penser en termes de futures frontières de composants, même avant que l'extraction soit terminée :
- L'analyse face aux paquets, les observables et le travail CLI du moteur appartiennent à la frontière
msengine. - Les routes Flask, les templates, l'auth, les projets et l'UX de revue de rapport appartiennent à la frontière
workbench. - ATT&CK, IEC 62443, PERA et autres superpositions consommatrices de rapports appartiennent à la future frontière
plugins. - Les parseurs Rust fortement orientés paquets appartiennent à la future frontière
engines.