ajoute les pages légales, la purge RGPD et sert polices et scripts depuis le portail
Pages /legal et /confidentialite réécrites d'après le système réel, purge des classes archivées depuis 90 jours (prouvée par Pest), archivage côté prof. Polices, xterm.js et CodeMirror ne sont plus chargés depuis Google ni jsDelivr. Pages d'aperçu signalées, sans vrais établissements ni faux chiffres. Journaux Laravel gardés 14 jours. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
0a5df89201
commit
e4a6aaebb1
62 changed files with 822 additions and 238 deletions
144
portail/resources/views/confidentialite.blade.php
Normal file
144
portail/resources/views/confidentialite.blade.php
Normal file
|
|
@ -0,0 +1,144 @@
|
|||
@extends('layouts.vitrine')
|
||||
|
||||
@section('titre', 'Confidentialité et RGPD')
|
||||
|
||||
{{-- Étape 14 : chaque affirmation de cette page a été vérifiée sur le système
|
||||
réel (docs/journal.md, étape 14). À mettre à jour à chaque nouveau
|
||||
traitement de données. --}}
|
||||
@section('contenu')
|
||||
<section class="border-b border-[#e3e5e8] bg-white">
|
||||
<div class="mx-auto max-w-7xl px-5 pb-14 pt-14 lg:px-10">
|
||||
<p class="inline-block border border-[#dadce0] rounded-lg bg-[#e6f4ea] px-3 py-1 text-sm font-bold">Confidentialité et RGPD</p>
|
||||
<h1 class="mt-8 max-w-4xl text-6xl font-extrabold leading-[1.05] tracking-tight sm:text-7xl">Ce que nous savons de vous, et pourquoi.</h1>
|
||||
<p class="mt-6 font-mono text-sm font-semibold">Dernière mise à jour : 9 octobre 2026</p>
|
||||
</div>
|
||||
</section>
|
||||
<div class="mx-auto grid max-w-7xl gap-10 px-5 py-14 lg:grid-cols-12 lg:px-10">
|
||||
<nav class="lg:col-span-3" aria-label="Sommaire">
|
||||
<ol class="sticky top-6 grid gap-2 font-extrabold">
|
||||
<li><a href="#responsable" class="block border border-[#e3e5e8] rounded-2xl bg-white px-4 py-2">Qui est responsable</a></li>
|
||||
<li><a href="#donnees" class="block border border-[#e3e5e8] rounded-2xl bg-white px-4 py-2">Données traitées</a></li>
|
||||
<li><a href="#durees" class="block border border-[#e3e5e8] rounded-2xl bg-white px-4 py-2">Durées de conservation</a></li>
|
||||
<li><a href="#hebergement" class="block border border-[#e3e5e8] rounded-2xl bg-white px-4 py-2">Hébergement et tiers</a></li>
|
||||
<li><a href="#securite" class="block border border-[#e3e5e8] rounded-2xl bg-white px-4 py-2">Sécurité</a></li>
|
||||
<li><a href="#cookies" class="block border border-[#e3e5e8] rounded-2xl bg-white px-4 py-2">Cookies</a></li>
|
||||
<li><a href="#droits" class="block border border-[#e3e5e8] rounded-2xl bg-white px-4 py-2">Vos droits</a></li>
|
||||
<li><a href="#sous-traitance" class="block border border-[#e3e5e8] rounded-2xl bg-white px-4 py-2">Sous-traitance (art. 28)</a></li>
|
||||
</ol>
|
||||
</nav>
|
||||
<div class="grid gap-12 lg:col-span-9 [&_section]:scroll-mt-6 [&_section]:rounded-2xl [&_section]:border [&_section]:border-[#e3e5e8] [&_section]:bg-white [&_section]:p-7 [&_h2]:text-4xl [&_h2]:font-extrabold [&_h2]:tracking-tight [&_h3]:mt-4 [&_h3]:text-xl [&_h3]:font-extrabold [&_ul]:grid [&_ul]:gap-2 [&_ul]:pl-5 [&_li]:list-disc">
|
||||
|
||||
<section id="responsable" aria-labelledby="t-responsable">
|
||||
<h2 id="t-responsable">Qui est responsable</h2>
|
||||
<div class="mt-6 grid gap-4 text-lg font-medium leading-relaxed">
|
||||
<p>Syllabus est édité par Esquisse Formation (voir les <a href="{{ route('legal') }}#mentions" class="font-bold underline underline-offset-4">mentions légales</a>).</p>
|
||||
<p>Quand un établissement utilise Syllabus avec ses élèves, <strong>l’établissement est responsable du traitement</strong> et Esquisse Formation agit comme <strong>sous-traitant</strong>, sur ses instructions. Pour les comptes enseignants, Esquisse Formation est responsable du traitement.</p>
|
||||
<p>Délégué à la protection des données : <mark class="bg-[#fef7e0] px-1 font-bold">[à compléter si désigné]</mark>. Contact : adam@belkacemi.me</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="donnees" aria-labelledby="t-donnees">
|
||||
<h2 id="t-donnees">Données traitées</h2>
|
||||
<div class="mt-6 grid gap-4 text-lg font-medium leading-relaxed">
|
||||
<h3>Élèves</h3>
|
||||
<ul>
|
||||
<li>prénom, nom (facultatif, visible du seul enseignant), classe ;</li>
|
||||
<li>identifiant de connexion et code secret (le code est stocké sous forme hachée, illisible, y compris pour nous) ;</li>
|
||||
<li><strong>aucune adresse e-mail</strong> ;</li>
|
||||
<li>sessions de lab : date, état, machines virtuelles attribuées ;</li>
|
||||
<li>résultats de la vérification automatique (réussi ou non, note, message par vérification).</li>
|
||||
</ul>
|
||||
<p>Ce que l’élève tape dans la console de sa machine virtuelle n’est pas enregistré par Syllabus. Son enseignant peut suivre la console en direct, en lecture seule, pendant la séance.</p>
|
||||
<h3>Enseignants</h3>
|
||||
<ul>
|
||||
<li>nom, adresse e-mail, établissement ;</li>
|
||||
<li>mot de passe, stocké sous forme hachée.</li>
|
||||
</ul>
|
||||
<h3>Journaux techniques</h3>
|
||||
<ul>
|
||||
<li>journaux du serveur web : adresse IP, date, page demandée ;</li>
|
||||
<li>journaux de l’application : erreurs et événements techniques, sans contenu des pages.</li>
|
||||
</ul>
|
||||
<h3>Finalités et bases légales</h3>
|
||||
<p>Fournir le service d’enseignement demandé par l’établissement (mission d’intérêt public de l’établissement, article 6.1.e du RGPD) ou par l’enseignant (exécution du contrat, article 6.1.b). Les journaux techniques servent à la sécurité et au bon fonctionnement du service (intérêt légitime, article 6.1.f). Aucune donnée n’est vendue, utilisée à des fins publicitaires, ni traitée par une intelligence artificielle.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="durees" aria-labelledby="t-durees">
|
||||
<h2 id="t-durees">Durées de conservation</h2>
|
||||
<div class="mt-6 grid gap-4 text-lg font-medium leading-relaxed">
|
||||
<ul>
|
||||
<li><strong>Machines virtuelles</strong> et leur contenu : supprimées à la fin de la session de lab (45 minutes par défaut).</li>
|
||||
<li><strong>Classe et données de ses élèves</strong> : jusqu’à l’archivage de la classe par l’enseignant, puis <strong>supprimées automatiquement 90 jours après l’archivage</strong>.</li>
|
||||
<li><strong>Compte enseignant</strong> : tant qu’il est utilisé ; supprimé sur demande.</li>
|
||||
<li><strong>Journaux techniques</strong> : 14 jours.</li>
|
||||
<li><strong>Sauvegardes</strong> : chiffrées, conservées au plus 5 semaines (7 sauvegardes quotidiennes et 4 hebdomadaires). Une donnée supprimée disparaît donc des sauvegardes au plus tard 5 semaines après sa suppression.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="hebergement" aria-labelledby="t-hebergement">
|
||||
<h2 id="t-hebergement">Hébergement et services tiers</h2>
|
||||
<div class="mt-6 grid gap-4 text-lg font-medium leading-relaxed">
|
||||
<p>Le service, ses bases de données et ses sauvegardes chiffrées sont <strong>hébergés en France</strong>, chez Scaleway. Les données des comptes ne quittent pas l’Union européenne.</p>
|
||||
<p>Les pages de l’espace connecté (élèves et enseignants) ne chargent <strong>aucune ressource depuis un service tiers</strong> : polices, scripts et styles sont servis par Syllabus.</p>
|
||||
<p>Certaines pages publiques de présentation font encore appel à des services tiers, qui reçoivent alors l’adresse IP du visiteur :</p>
|
||||
<ul>
|
||||
<li>des pages d’aperçu chargent la bibliothèque de styles Tailwind depuis <span class="font-mono">cdn.tailwindcss.com</span> (Tailwind Labs, États-Unis) ;</li>
|
||||
<li>l’éditeur de code <span class="font-mono">/ide</span> télécharge Python (Pyodide) et SQL (sql.js) depuis <span class="font-mono">cdn.jsdelivr.net</span>, seulement quand on exécute du code ;</li>
|
||||
<li>la page d’aperçu d’un cours peut afficher une vidéo depuis <span class="font-mono">youtube-nocookie.com</span>, seulement si un lien vidéo y est ajouté.</li>
|
||||
</ul>
|
||||
<p>Nous travaillons à servir ces ressources nous-mêmes.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="securite" aria-labelledby="t-securite">
|
||||
<h2 id="t-securite">Sécurité</h2>
|
||||
<div class="mt-6 grid gap-4 text-lg font-medium leading-relaxed">
|
||||
<ul>
|
||||
<li>connexions chiffrées (HTTPS, TLS 1.2 et 1.3) ;</li>
|
||||
<li>mots de passe et codes secrets hachés ;</li>
|
||||
<li>une machine virtuelle par élève, isolée, sans accès à Internet ;</li>
|
||||
<li>la vérification automatique n’exécute que des commandes définies à l’avance par le lab, jamais de commande libre ;</li>
|
||||
<li>sauvegardes chiffrées avant leur envoi, restauration testée chaque semaine ;</li>
|
||||
<li>administration du serveur par clé SSH uniquement.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="cookies" aria-labelledby="t-cookies">
|
||||
<h2 id="t-cookies">Cookies</h2>
|
||||
<div class="mt-6 grid gap-4 text-lg font-medium leading-relaxed">
|
||||
<p>Syllabus n’utilise que deux cookies, strictement nécessaires : <span class="font-mono">syllabus-session</span>, qui vous garde connecté, et <span class="font-mono">XSRF-TOKEN</span>, qui protège les formulaires. Aucun cookie publicitaire ni de mesure d’audience. Ils ne demandent donc pas de consentement.</p>
|
||||
<p>L’éditeur de code et la page de visio gardent aussi, dans le stockage local de votre navigateur, votre code et une préférence d’affichage. Ces informations ne nous sont pas transmises.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="droits" aria-labelledby="t-droits">
|
||||
<h2 id="t-droits">Vos droits</h2>
|
||||
<div class="mt-6 grid gap-4 text-lg font-medium leading-relaxed">
|
||||
<p>Vous disposez des droits d’accès, de rectification, d’effacement, de limitation, d’opposition et de portabilité. Élèves et familles : adressez-vous d’abord à l’enseignant ou à l’établissement, responsable du traitement. Enseignants : écrivez à adam@belkacemi.me.</p>
|
||||
<p>Vous pouvez aussi adresser une réclamation à la CNIL (<span class="font-mono">cnil.fr</span>).</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="sous-traitance" aria-labelledby="t-sous-traitance">
|
||||
<h2 id="t-sous-traitance">Sous-traitance (article 28 du RGPD)</h2>
|
||||
<div class="mt-6 grid gap-4 text-lg font-medium leading-relaxed">
|
||||
<p>Pour chaque établissement, un accord de sous-traitance peut être établi sur demande. Il précise :</p>
|
||||
<ul>
|
||||
<li>l’objet, la durée et la nature des traitements ;</li>
|
||||
<li>les mesures de sécurité décrites ci-dessus ;</li>
|
||||
<li>la confidentialité des personnes autorisées ;</li>
|
||||
<li>les sous-traitants ultérieurs : hébergement et sauvegardes chez Scaleway (France) ;</li>
|
||||
<li>l’assistance pour répondre aux demandes d’exercice des droits ;</li>
|
||||
<li>la notification des violations de données ;</li>
|
||||
<li>la suppression ou la restitution des données en fin de contrat.</li>
|
||||
</ul>
|
||||
<p>Demande : adam@belkacemi.me</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
Loading…
Add table
Add a link
Reference in a new issue