102 lines
2.3 KiB
Markdown
102 lines
2.3 KiB
Markdown
|
|
# Chezlepro SOC 2 Type II Cockpit
|
|||
|
|
|
|||
|
|
Cockpit web React orienté **conformité opérationnelle SOC 2 Type II** pour Chezlepro Inc.
|
|||
|
|
|
|||
|
|
L’application fournit :
|
|||
|
|
|
|||
|
|
- un **radar des 5 piliers** SOC 2 ;
|
|||
|
|
- un suivi **pondéré des jalons** ;
|
|||
|
|
- une **bibliothèque de preuves** éditable ;
|
|||
|
|
- une **salle auditeur** avec paquets de revue ;
|
|||
|
|
- une **source de vérité JSON** persistée localement ;
|
|||
|
|
- des **exports/manifests** pour préparer un dépôt Git versionné.
|
|||
|
|
|
|||
|
|
## Architecture
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
src/
|
|||
|
|
App.jsx
|
|||
|
|
styles.css
|
|||
|
|
model/
|
|||
|
|
schema.js
|
|||
|
|
seed.js
|
|||
|
|
stages.js
|
|||
|
|
lib/
|
|||
|
|
utils.js
|
|||
|
|
validation.js
|
|||
|
|
selectors.js
|
|||
|
|
view.js
|
|||
|
|
features/
|
|||
|
|
hooks/
|
|||
|
|
useSoc2Registry.js
|
|||
|
|
components/
|
|||
|
|
PillarOverviewCard.jsx
|
|||
|
|
MilestoneCard.jsx
|
|||
|
|
EvidenceLibrary.jsx
|
|||
|
|
EvidenceEditor.jsx
|
|||
|
|
DataTab.jsx
|
|||
|
|
ui/
|
|||
|
|
primitives.jsx
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Principes de conception
|
|||
|
|
|
|||
|
|
- **Modèle** : constantes, schéma, seed data, états des contrôles.
|
|||
|
|
- **Lib métier** : normalisation, validation, calculs, sélecteurs.
|
|||
|
|
- **Hook de registre** : persistance locale, import/export, mutations synchronisées.
|
|||
|
|
- **Composants** : interface séparée du moteur métier.
|
|||
|
|
|
|||
|
|
Le cockpit est prêt à évoluer vers une vraie source de vérité Git/Forgejo :
|
|||
|
|
|
|||
|
|
- chemin recommandé pour le registre : `compliance/soc2/registry/soc2-registry.json`
|
|||
|
|
- pièces jointes recommandées : `compliance/soc2/evidence/`
|
|||
|
|
|
|||
|
|
## Lancer le projet
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm install
|
|||
|
|
npm run dev
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Build de production :
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm run build
|
|||
|
|
npm run preview
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Dépendances
|
|||
|
|
|
|||
|
|
- React
|
|||
|
|
- Vite
|
|||
|
|
- Recharts
|
|||
|
|
- Framer Motion
|
|||
|
|
- Lucide React
|
|||
|
|
|
|||
|
|
## Source de vérité
|
|||
|
|
|
|||
|
|
Le cockpit persiste son état dans `localStorage` pour le prototype.
|
|||
|
|
|
|||
|
|
La prochaine étape naturelle est de remplacer cette persistance par :
|
|||
|
|
|
|||
|
|
1. un fichier JSON versionné dans un dépôt Forgejo ;
|
|||
|
|
2. une API légère de lecture/écriture ;
|
|||
|
|
3. éventuellement une ingestion automatique depuis Icinga, Keycloak et les registres internes.
|
|||
|
|
|
|||
|
|
## Limites actuelles
|
|||
|
|
|
|||
|
|
- pas d’authentification applicative ;
|
|||
|
|
- pas de backend ;
|
|||
|
|
- pas de gestion de fichiers binaires de preuves ;
|
|||
|
|
- pas encore de synchronisation distante.
|
|||
|
|
|
|||
|
|
## Recommandation d’évolution
|
|||
|
|
|
|||
|
|
Séquence recommandée :
|
|||
|
|
|
|||
|
|
1. brancher le registre JSON versionné ;
|
|||
|
|
2. ajouter gestion de pièces jointes ;
|
|||
|
|
3. ajouter règles de validation plus strictes ;
|
|||
|
|
4. ajouter API backend ;
|
|||
|
|
5. brancher les collecteurs automatiques de preuves.
|