133feff75d
6 chantiers v1 sur 7 livrés (DataTable refonte reportée car nécessite 2-3j en propre — TanStack Table + virtualisation + filter builder). v1-A — Tests (4 → 22 fichiers) : - Avatar, AvatarGroup, UserCard, MetricCard, ProfileHeader, Tooltip, Sheet, Drawer, Slider, ToggleGroup, Tabs, Pagination, Accordion, Switch, Badge, ConfirmDialog, Popover, Menu, Text, PricingCard, FeatureCard, Toast — chacun avec render + clavier + axe-core. v1-B — Storybook (7 → 23 fichiers) : - Avatar, UserCard, ProfileHeader, MetricCard, PricingCard, FeatureCard, Sheet (4 sides), HoverCard, Slider, ToggleGroup, Menu+ContextMenu, Toast (avec démo "Empiler 5"), Tabs, Pagination, Accordion, Badge. v1-D — Visual regression Playwright : - playwright.config.ts (light + dark, threshold strict 0.2) - e2e/visual.spec.ts (20 stories critiques) - Step CI + upload report en cas de fail v1-E — Site doc Starlight rempli : - 11 pages composants détaillées (Button, Input, Tooltip, Dialog, Toast, Avatar, ThemePicker, MetricCard, PricingCard, ToggleGroup, Slider) avec API, anatomie, do/don't, A11y. v1-F — Publishing Verdaccio : - verdaccio/config.yaml, docker-compose.verdaccio.yml, .npmrc - README setup local + déploiement prod + backups + sécurité v1-G — Gouvernance : - LICENSE, CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md - CODEOWNERS, PR template, 3 issue templates (bug/feature/rfc) Bug fix bonus : tooltip dark mode (text-primary comme bg + text-inverse comme texte → blanc-sur-blanc invisible). Remplacé par neutral-900/0 en light + bg-raised/text-primary en dark. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.6 KiB
2.6 KiB
Politique de sécurité — DSMMG
Versions supportées
| Version | Statut |
|---|---|
| 0.2.x | ✅ Active |
| 0.1.x | ❌ Plus supportée — migrer vers 0.2 (cf. docs/src/content/docs/intro/migration.md) |
Une version mineure reçoit des correctifs de sécurité jusqu'à la sortie de la mineure suivante. La mineure précédente reçoit uniquement les correctifs critiques pendant 90 jours.
Signaler une vulnérabilité
Ne pas ouvrir d'issue publique pour une vulnérabilité.
Envoyer un e-mail à security@managemate.fr avec :
- Description du problème.
- Étapes de reproduction (scénario minimal, screenshots si pertinent).
- Impact estimé (confidentialité, intégrité, disponibilité).
- Version(s) affectée(s).
- Suggestion de correctif (optionnel).
Vous recevrez :
- Accusé de réception sous 48h ouvrées.
- Évaluation initiale sous 5 jours ouvrés.
- Communication régulière sur l'avancement.
- Une mention dans le CHANGELOG (avec votre accord) si la vulnérabilité est confirmée.
Périmètre de sécurité
Les composants du DSMMG sont des briques d'UI. Les responsabilités sécurité :
| Couche | Qui ? |
|---|---|
| Validation côté client (formats, longueurs) | Composant DSMMG |
| Échappement XSS dans le rendu React | React + composant |
| Validation serveur, autorisation, CSRF | L'application consommatrice |
| Stockage et chiffrement des données | L'application consommatrice |
| Protection contre injections (SQL, command) | L'application consommatrice |
Le DSMMG ne contient pas de logique d'authentification, de gestion de tokens, ni de stockage de secrets.
Bonnes pratiques pour l'intégrateur
- Valider côté serveur toute entrée venant du client, même si elle a été contrôlée par un composant DSMMG.
- Échappement systématique lors de l'injection de contenu utilisateur dans un composant (le DSMMG ne fait pas de sanitization HTML — seulement le rendu React natif).
- Politique CSP stricte côté app : interdire
'unsafe-inline', whitelister explicitement les domaines de fonts (Google Fonts pour Figtree). - Mises à jour : surveiller les avis de sécurité de Radix UI, Floating UI, et autres dépendances upstream du DSMMG.
Audits
Le DSMMG est audité automatiquement à chaque release :
pnpm auditsur le lockfile pnpmpnpm lint:contrast(vérifie les ratios de contraste WCAG AA)axe-coresur tous les composants en CIsize-limitpour détecter les régressions de bundle
Crédits
Merci aux personnes ayant signalé des vulnérabilités responsables :
- (en attente)