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>
73 lines
2.6 KiB
Markdown
73 lines
2.6 KiB
Markdown
# 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 :
|
|
|
|
1. Description du problème.
|
|
2. Étapes de reproduction (scénario minimal, screenshots si pertinent).
|
|
3. Impact estimé (confidentialité, intégrité, disponibilité).
|
|
4. Version(s) affectée(s).
|
|
5. 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 audit` sur le lockfile pnpm
|
|
- `pnpm lint:contrast` (vérifie les ratios de contraste WCAG AA)
|
|
- `axe-core` sur tous les composants en CI
|
|
- `size-limit` pour détecter les régressions de bundle
|
|
|
|
## Crédits
|
|
|
|
Merci aux personnes ayant signalé des vulnérabilités responsables :
|
|
- *(en attente)*
|