fix(contenu): aligne les pages légales et la documentation sur la réalité livrée
Plusieurs pages statiques affirmaient des faits contredits par le code, le dump SQL ou le dossier de projet. Corrections vérifiées une à une contre les sources. Documentation : - React 18 -> React 19 (package.json : react ^19.2.5) - token « stocké en sessionStorage » -> localStorage (api.js, AuthContext.jsx), avec HS256 / 60 min / sans refresh token - « jobs CRON » -> jobs SQL Server Agent (aucun CRON dans le dump) - « Infrastructure NEXERN / hébergement souverain » -> conteneurs Docker derrière un reverse proxy ; NEXERN redevient la cible métier - suppression du monitoring « Infocentre » qui n'existe pas : la nomenclature livrée compte 6 monitorings Sage et 1 CRM, répartis sur les pôles Contrat (5) et Fournisseur (2) - « contrastes conformes » -> objectif WCAG 2.1 AA, audit des contrastes à mener - rôle « Administrateur » -> « Admin » (valeur réelle de l'énumération) Mentions légales et CGU : - éditeur : projet académique de COYAUD Anthony ; XEFI SA devient commanditaire. L'instance de démonstration n'est ni éditée ni exploitée par XEFI SA - hébergeur : environnement de démonstration auto-hébergé, NEXERN en cible métier - section Cookies : l'application ne dépose aucun cookie. La session et le choix de consentement sont en localStorage, et aucun traceur tiers n'est utilisé - conservation : la purge à 24 mois porte sur l'historique de monitoring (TABLE_FINAL) ; la mention « 24 mois à compter de la dernière connexion » n'était adossée à aucun traitement - droits RGPD : mise en avant du libre-service réellement implémenté (GET /me/data-export art. 20, DELETE /me art. 17) - accessibilité : la conformité WCAG 2.1 AA devient un objectif, avec la liste des mesures en place et celle des points restant à traiter - contact dpo@xefi.fr remplacé par a.coyaud@xefi.fr (6 occurrences) - CGV et modération de commentaires déclarées explicitement sans objet Build : - vite.config.js : build.target déclaré explicitement (chrome111, edge111, firefox114, safari16.4, ios16.4) au lieu de dépendre du défaut de Vite, pour que la matrice de compatibilité annoncée dans le README soit tracée au dépôt Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
df9bcf4c4d
commit
7508f86c8c
@@ -27,14 +27,17 @@ export default function CGU() {
|
||||
<h2 id="art1">Article 1 — Objet et champ d'application</h2>
|
||||
<p>
|
||||
Les présentes Conditions Générales d'Utilisation (ci-après « CGU ») régissent l'accès et
|
||||
l'utilisation de la plateforme <strong>Data Sentinel</strong>, outil interne de monitoring
|
||||
de la qualité des données développé par COYAUD Anthony pour le compte de <strong>XEFI SA</strong>
|
||||
(ci-après « l'Éditeur »).
|
||||
l'utilisation de la plateforme <strong>Data Sentinel</strong>, outil de monitoring de la
|
||||
qualité des données développé par <strong>COYAUD Anthony</strong> (ci-après « l'Éditeur »)
|
||||
dans le cadre de son projet annuel Nexa Digital School, en réponse à un besoin du service
|
||||
Business Intelligence de <strong>XEFI SA</strong> (commanditaire).
|
||||
</p>
|
||||
<p>
|
||||
Data Sentinel est une application web à usage professionnel interne, accessible uniquement
|
||||
aux collaborateurs habilités de XEFI et de ses filiales. Toute utilisation de la plateforme
|
||||
implique l'acceptation pleine et entière des présentes CGU.
|
||||
Data Sentinel est une application web à usage professionnel interne. La présente instance
|
||||
est une <strong>démonstration académique</strong> : elle est accessible à des fins
|
||||
d'évaluation au moyen de comptes de test et ne contient aucune donnée réelle
|
||||
d'entreprise. Toute utilisation de la plateforme implique l'acceptation pleine et entière
|
||||
des présentes CGU.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
@@ -42,8 +45,9 @@ export default function CGU() {
|
||||
<h2 id="art2">Article 2 — Accès au service</h2>
|
||||
<p>
|
||||
L'accès à Data Sentinel est réservé aux utilisateurs disposant d'un compte valide créé
|
||||
par un administrateur système XEFI. L'authentification s'effectue via un identifiant et
|
||||
un mot de passe fournis par l'entreprise.
|
||||
par un administrateur de la plateforme. L'authentification s'effectue par identifiant et
|
||||
mot de passe, complétée par une vérification anti-robot. Les mots de passe ne sont jamais
|
||||
stockés en clair.
|
||||
</p>
|
||||
<ul className={styles.list}>
|
||||
<li>Chaque utilisateur est responsable de la confidentialité de ses identifiants.</li>
|
||||
@@ -58,11 +62,17 @@ export default function CGU() {
|
||||
<p>Data Sentinel offre les fonctionnalités suivantes :</p>
|
||||
<ul className={styles.list}>
|
||||
<li><strong>Dashboard</strong> — Vue d'ensemble des indicateurs clés de qualité des données (KPI).</li>
|
||||
<li><strong>Monitoring</strong> — Suivi en temps réel des monitorings CRM, Sage et Infocentre.</li>
|
||||
<li><strong>Monitoring</strong> — Suivi de 7 monitorings répartis sur deux pôles (Contrat, Fournisseur), alimentés par des extractions de Sage et du CRM.</li>
|
||||
<li><strong>Vue consolidée</strong> — Agrégation des résultats par service et catégorie.</li>
|
||||
<li><strong>Historique</strong> — Consultation et export des données historiques.</li>
|
||||
<li><strong>Historique</strong> — Consultation et export des données historiques, à partir d'un instantané quotidien.</li>
|
||||
<li><strong>Administration</strong> — Gestion des nomenclatures, utilisateurs et journaux.</li>
|
||||
</ul>
|
||||
<p>
|
||||
Le service ne comporte <strong>ni vente, ni transaction, ni paiement en ligne</strong> :
|
||||
aucune condition générale de vente n'est donc applicable. Il ne propose
|
||||
<strong> aucun espace de contribution</strong> (commentaires, forum, avis), ce qui rend
|
||||
sans objet toute politique de modération.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section className={styles.section} aria-labelledby="art4">
|
||||
@@ -80,33 +90,50 @@ export default function CGU() {
|
||||
<section className={styles.section} aria-labelledby="art5">
|
||||
<h2 id="art5">Article 5 — Protection des données personnelles (RGPD)</h2>
|
||||
<p>
|
||||
Conformément au Règlement Général sur la Protection des Données (UE 2016/679), XEFI SA
|
||||
traite les données personnelles des utilisateurs dans le strict respect de la réglementation.
|
||||
Le traitement est conçu conformément au Règlement Général sur la Protection des Données
|
||||
(UE 2016/679). Les données personnelles traitées sont limitées au strict nécessaire pour
|
||||
authentifier les utilisateurs et tracer les actions d'administration.
|
||||
</p>
|
||||
<div className={styles.infoBox} role="note" aria-label="Informations RGPD">
|
||||
<p><strong>Responsable du traitement :</strong> XEFI SA — 2507 Avenue de l'Europe, 69140 Rillieux-la-Pape</p>
|
||||
<p><strong>Délégué à la Protection des Données (DPO) :</strong> dpo@xefi.fr</p>
|
||||
<p><strong>Responsable du traitement (instance de démonstration) :</strong> COYAUD Anthony — a.coyaud@xefi.fr</p>
|
||||
<p><strong>Données traitées :</strong> identifiant, e-mail, rôle, horodatage des connexions et des actions d'administration.</p>
|
||||
<p><strong>Finalité :</strong> Authentification, traçabilité des actions, sécurité du système.</p>
|
||||
<p><strong>Durée de conservation :</strong> 24 mois à compter de la dernière connexion.</p>
|
||||
<p><strong>Droits :</strong> Accès, rectification, effacement, portabilité — à exercer auprès de dpo@xefi.fr.</p>
|
||||
<p><strong>Base légale :</strong> intérêt légitime — fiabilité des données et traçabilité des accès.</p>
|
||||
<p><strong>Conservation :</strong> historique de monitoring purgé automatiquement au-delà de 24 mois. Les comptes et le journal d'audit sont conservés le temps de l'exploitation, puis supprimés avec l'instance.</p>
|
||||
<p><strong>Droits :</strong> export de ses données et suppression de son compte directement dans l'application (portabilité art. 20, effacement art. 17 par désactivation et anonymisation). Pour toute autre demande — accès, rectification, opposition : a.coyaud@xefi.fr.</p>
|
||||
<p><strong>Transferts hors UE :</strong> aucun. <strong>Traceurs tiers :</strong> aucun.</p>
|
||||
</div>
|
||||
<p>
|
||||
Dans l'hypothèse d'un déploiement en production chez XEFI SA, la responsabilité du
|
||||
traitement reviendrait à l'entreprise et une validation par son délégué à la protection
|
||||
des données serait requise au préalable.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section className={styles.section} aria-labelledby="art6">
|
||||
<h2 id="art6">Article 6 — Accessibilité</h2>
|
||||
<p>
|
||||
XEFI s'engage à rendre Data Sentinel accessible conformément au Référentiel Général
|
||||
d'Amélioration de l'Accessibilité (RGAA). L'application respecte les principes WCAG 2.1
|
||||
niveau AA : perceptibilité, utilisabilité, compréhension et robustesse.
|
||||
L'Éditeur s'est fixé pour <strong>objectif</strong> le niveau AA des WCAG 2.1, en
|
||||
s'appuyant sur le Référentiel Général d'Amélioration de l'Accessibilité (RGAA).
|
||||
Cet objectif est poursuivi par une démarche intégrée aux composants ; il ne fait pas
|
||||
encore l'objet d'une déclaration de conformité, l'audit formel restant à mener.
|
||||
</p>
|
||||
<p>Mesures effectivement en place :</p>
|
||||
<ul className={styles.list}>
|
||||
<li>Navigation clavier intégrale supportée.</li>
|
||||
<li>Compatibilité avec les lecteurs d'écran (ARIA labels, landmarks, roles).</li>
|
||||
<li>Contrastes de couleurs conformes aux exigences WCAG 2.1 AA (ratio 4.5:1 minimum).</li>
|
||||
<li>Navigation clavier sur l'ensemble des contrôles ; les boîtes de dialogue retiennent le focus, se ferment par Échap et le restituent à l'élément appelant.</li>
|
||||
<li>Attributs ARIA (labels, landmarks, rôles), langue déclarée, annonces des messages d'erreur et de chargement aux lecteurs d'écran.</li>
|
||||
<li>Formulaires étiquetés ; la connexion est protégée par un captcha additif, sans image ni distorsion, donc restituable par un lecteur d'écran.</li>
|
||||
<li>Aucune information portée par la seule couleur : les statuts sont doublés d'un libellé.</li>
|
||||
<li>Interface responsive adaptée aux écrans de 320px à 1920px.</li>
|
||||
</ul>
|
||||
<p>Points restant à traiter, énoncés par transparence :</p>
|
||||
<ul className={styles.list}>
|
||||
<li>Vérification systématique des contrastes (ratio 4.5:1) lors d'un audit dédié.</li>
|
||||
<li>Tests sur lecteurs d'écran réels (NVDA, VoiceOver) non encore réalisés.</li>
|
||||
<li>Aucune surcouche d'accessibilité n'est installée : ces widgets dégradent souvent la sémantique et la navigation clavier, l'accessibilité étant traitée à la source dans les composants.</li>
|
||||
</ul>
|
||||
<p>
|
||||
Pour signaler un problème d'accessibilité : <strong>dpo@xefi.fr</strong>
|
||||
Pour signaler un problème d'accessibilité : <strong>a.coyaud@xefi.fr</strong>
|
||||
</p>
|
||||
</section>
|
||||
|
||||
@@ -122,17 +149,18 @@ export default function CGU() {
|
||||
<section className={styles.section} aria-labelledby="art8">
|
||||
<h2 id="art8">Article 8 — Propriété intellectuelle</h2>
|
||||
<p>
|
||||
L'ensemble des éléments composant Data Sentinel (code source, design, données, documentation)
|
||||
est la propriété exclusive de <strong>XEFI SA</strong>. Toute reproduction, modification
|
||||
ou diffusion sans autorisation écrite préalable est interdite.
|
||||
L'ensemble des éléments composant Data Sentinel (code source, design, documentation) a été
|
||||
réalisé par <strong>COYAUD Anthony</strong> dans le cadre de son alternance chez XEFI SA et
|
||||
de son projet annuel — Bachelor DBI, Nexa Digital School, 2026. Les règles de gestion et le
|
||||
besoin métier appartiennent à XEFI SA.
|
||||
</p>
|
||||
<p>Application développée par <strong>COYAUD Anthony</strong> — Bachelor DBI, Nexa Digital School, 2026.</p>
|
||||
<p>Toute reproduction, modification ou diffusion sans autorisation préalable est interdite.</p>
|
||||
</section>
|
||||
|
||||
<section className={styles.section} aria-labelledby="art9">
|
||||
<h2 id="art9">Article 9 — Modification des CGU</h2>
|
||||
<p>
|
||||
XEFI SA se réserve le droit de modifier les présentes CGU à tout moment. Les utilisateurs
|
||||
L'Éditeur se réserve le droit de modifier les présentes CGU à tout moment. Les utilisateurs
|
||||
seront informés de toute modification substantielle. La poursuite de l'utilisation de la
|
||||
plateforme après notification vaut acceptation des nouvelles conditions.
|
||||
</p>
|
||||
@@ -142,15 +170,15 @@ export default function CGU() {
|
||||
<h2 id="art10">Article 10 — Droit applicable et contact</h2>
|
||||
<p>Les présentes CGU sont soumises au droit français. Pour toute question :</p>
|
||||
<div className={styles.infoBox} role="note" aria-label="Coordonnées de contact">
|
||||
<p><strong>XEFI SA</strong></p>
|
||||
<p>2507 Avenue de l'Europe — 69140 Rillieux-la-Pape</p>
|
||||
<p>Email : dpo@xefi.fr</p>
|
||||
<p><strong>COYAUD Anthony</strong> — Éditeur</p>
|
||||
<p>Projet annuel Bachelor DBI — Nexa Digital School, 2026</p>
|
||||
<p>Email : a.coyaud@xefi.fr</p>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<footer className={styles.footer} role="contentinfo">
|
||||
<p>Data Sentinel v1.0 — © XEFI SA 2026</p>
|
||||
<p>Data Sentinel v1.0 — COYAUD Anthony, Nexa Digital School 2026</p>
|
||||
<nav aria-label="Liens légaux">
|
||||
<a href="/mentions-legales">Mentions légales</a>
|
||||
</nav>
|
||||
|
||||
@@ -18,29 +18,29 @@ const sections = [
|
||||
icon: Code,
|
||||
title: 'Architecture technique',
|
||||
items: [
|
||||
{ label: 'Frontend — React 18 + Vite', desc: 'SPA React 18 avec CSS Modules, React Router v7, Recharts. Build Vite.' },
|
||||
{ label: 'Backend — API REST', desc: 'API REST avec authentification JWT. Endpoints documentés via Swagger.' },
|
||||
{ label: 'Base de données — SQL Server', desc: 'SQL Server avec vues SQL optimisées et jobs CRON pour les agrégations.' },
|
||||
{ label: 'Infrastructure — NEXERN (XEFI)', desc: 'Hébergement souverain français sur les datacenters NEXERN de XEFI.' },
|
||||
{ label: 'Frontend — React 19 + Vite', desc: 'SPA React 19 avec CSS Modules, React Router v7, Recharts. Build Vite.' },
|
||||
{ label: 'Backend — API REST', desc: 'API REST FastAPI avec authentification JWT. Endpoints documentés via Swagger.' },
|
||||
{ label: 'Base de données — SQL Server', desc: 'SQL Server 2022 avec vues SQL d\'agrégation et jobs SQL Server Agent pour l\'historisation quotidienne.' },
|
||||
{ label: 'Infrastructure — Docker', desc: 'Conteneurs Docker derrière un reverse proxy HTTPS. Cible métier : datacenters souverains NEXERN de XEFI.' },
|
||||
],
|
||||
},
|
||||
{
|
||||
icon: Database,
|
||||
title: 'Monitorings disponibles',
|
||||
items: [
|
||||
{ label: 'CRM — Données clients et prospects', desc: 'Surveillance de la cohérence et de la complétude des données CRM.' },
|
||||
{ label: 'Sage — Données comptables et financières', desc: 'Contrôle qualité des flux comptables issus de Sage.' },
|
||||
{ label: 'Infocentre — Reporting décisionnel', desc: 'Validation des données alimentant les rapports de direction.' },
|
||||
{ label: 'Contrat — 5 monitorings', desc: 'Tiers-payeurs, prélèvements sans RIB, TVA DOM-TOM, zone de ventes nulle, modes de règlement multiples.' },
|
||||
{ label: 'Fournisseur — 2 monitorings', desc: 'Écritures sans SIRET et écritures sans compte de contrepartie.' },
|
||||
{ label: 'Sources — Sage et CRM en V1', desc: 'Le périmètre V1 couvre Sage (6 monitorings) et le CRM (1). L\'Infocentre fait partie du périmètre cible.' },
|
||||
],
|
||||
},
|
||||
{
|
||||
icon: Shield,
|
||||
title: 'Sécurité et conformité',
|
||||
items: [
|
||||
{ label: 'Authentification JWT', desc: 'Token JWT stocké en sessionStorage, expiration automatique.' },
|
||||
{ label: 'Contrôle d\'accès RBAC', desc: 'Rôles : Administrateur, Superviseur, Consultant. Accès aux fonctions selon le rôle.' },
|
||||
{ label: 'Conformité RGPD', desc: 'Conservation 24 mois, DPO joignable sur dpo@xefi.fr, droits exercés à la demande.' },
|
||||
{ label: 'Accessibilité RGAA / WCAG 2.1 AA', desc: 'Navigation clavier, ARIA, contrastes conformes, responsive 320px–1920px.' },
|
||||
{ label: 'Authentification JWT', desc: 'Token JWT (HS256) stocké en localStorage, expiration 60 min sans refresh token.' },
|
||||
{ label: 'Contrôle d\'accès RBAC', desc: 'Rôles : Admin, Superviseur, Consultant. Accès aux fonctions selon le rôle.' },
|
||||
{ label: 'Conformité RGPD', desc: 'Historique conservé 24 mois, export et suppression de son compte en libre-service, droits exercés à la demande.' },
|
||||
{ label: 'Accessibilité — objectif WCAG 2.1 AA', desc: 'Navigation clavier, ARIA, responsive 320px–1920px. Audit formel des contrastes à finaliser.' },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
@@ -24,47 +24,82 @@ export default function MentionsLegales() {
|
||||
|
||||
<section className={styles.section}>
|
||||
<h2>Éditeur</h2>
|
||||
<p><strong>XEFI SA</strong></p>
|
||||
<p>2507 Avenue de l'Europe</p>
|
||||
<p>69140 Rillieux-la-Pape</p>
|
||||
<p>dpo@xefi.fr</p>
|
||||
<p><strong>COYAUD Anthony</strong></p>
|
||||
<p>Projet annuel — Bachelor Data & Business Intelligence</p>
|
||||
<p>Nexa Digital School, 2026</p>
|
||||
<p>a.coyaud@xefi.fr</p>
|
||||
</section>
|
||||
|
||||
<section className={styles.section}>
|
||||
<h2>Commanditaire</h2>
|
||||
<p><strong>XEFI SA</strong> — 2507 Avenue de l'Europe, 69140 Rillieux-la-Pape</p>
|
||||
<p>
|
||||
Le besoin métier et les règles de gestion sont ceux du service Business Intelligence
|
||||
de XEFI. XEFI SA n'édite ni n'exploite la présente instance de démonstration.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section className={styles.section}>
|
||||
<h2>Hébergeur</h2>
|
||||
<p><strong>XEFI Infrastructure NEXERN</strong></p>
|
||||
<p>Souveraineté française</p>
|
||||
<p><strong>Environnement de démonstration auto-hébergé</strong></p>
|
||||
<p>
|
||||
Conteneurs Docker exposés en HTTPS via un reverse proxy, sur un serveur administré
|
||||
par l'auteur du projet. Cible métier d'un déploiement réel : les datacenters
|
||||
souverains NEXERN de XEFI.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section className={styles.section}>
|
||||
<h2>Accès & Utilisation</h2>
|
||||
<p>Usage interne exclusif aux collaborateurs habilités.</p>
|
||||
<h2>Accès & Utilisation</h2>
|
||||
<p>
|
||||
Application destinée à un usage professionnel interne. La présente instance est une
|
||||
démonstration accessible à des fins d'évaluation académique, au moyen de comptes de
|
||||
test ; elle ne contient aucune donnée réelle d'entreprise.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section className={styles.section}>
|
||||
<h2>Données personnelles RGPD (UE 2016/679)</h2>
|
||||
<p>Conservation des données : 24 mois</p>
|
||||
<p>Contact DPO : dpo@xefi.fr</p>
|
||||
<p>Données traitées : compte utilisateur (identifiant, e-mail, rôle) et journal des connexions.</p>
|
||||
<p>Conservation de l'historique de monitoring : 24 mois, par purge automatique en base.</p>
|
||||
<p>
|
||||
Droits exerçables directement dans l'application : export de ses données
|
||||
(portabilité, art. 20) et suppression de son compte (effacement, art. 17, par
|
||||
désactivation et anonymisation).
|
||||
</p>
|
||||
<p>Contact : a.coyaud@xefi.fr</p>
|
||||
</section>
|
||||
|
||||
<section className={styles.section}>
|
||||
<h2>Cookies</h2>
|
||||
<p>Session JWT uniquement, aucun tiers, bandeau de consentement.</p>
|
||||
<p>
|
||||
Aucun cookie n'est déposé et aucun traceur tiers n'est utilisé. La session et le
|
||||
choix de consentement sont conservés dans le stockage local du navigateur
|
||||
(<code>localStorage</code>), effaçable à tout moment depuis les réglages du navigateur
|
||||
ou par déconnexion.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section className={styles.section}>
|
||||
<h2>Propriété intellectuelle</h2>
|
||||
<p>© XEFI SA 2026, développé par COYAUD Anthony</p>
|
||||
<p>
|
||||
Code source, design et documentation réalisés par <strong>COYAUD Anthony</strong>
|
||||
{' '}dans le cadre de son alternance chez XEFI et de son projet annuel Nexa Digital
|
||||
School (2026).
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section className={styles.section}>
|
||||
<h2>Responsabilité</h2>
|
||||
<p>Données anonymisées pour rendu académique.</p>
|
||||
<p>
|
||||
Jeu de données entièrement fictif, produit pour la démonstration. Aucune donnée
|
||||
réelle de client, de fournisseur ou de collaborateur n'est exposée.
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<footer className={styles.footer}>
|
||||
<p>Data Sentinel v1.0 — © XEFI SA 2026</p>
|
||||
<p>Data Sentinel v1.0 — COYAUD Anthony, Nexa Digital School 2026</p>
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -6,6 +6,12 @@ export default defineConfig({
|
||||
plugins: [
|
||||
react(),
|
||||
],
|
||||
build: {
|
||||
// Cible de compilation déclarée explicitement plutôt que laissée au défaut de
|
||||
// Vite : la matrice de compatibilité annoncée dans le README est ainsi tracée
|
||||
// dans le dépôt et ne bougera pas si Vite change sa baseline par défaut.
|
||||
target: ['chrome111', 'edge111', 'firefox114', 'safari16.4', 'ios16.4'],
|
||||
},
|
||||
test: {
|
||||
environment: 'jsdom',
|
||||
globals: true,
|
||||
|
||||
Reference in New Issue
Block a user