From 814f8cbc918560609de8e38d082f43b317174e04 Mon Sep 17 00:00:00 2001 From: Antoine Van Elstraete Date: Tue, 8 Sep 2026 23:02:49 +0200 Subject: [PATCH] Delete page "GuidePronote" --- GuidePronote.md | 202 ------------------------------------------------ 1 file changed, 202 deletions(-) delete mode 100644 GuidePronote.md diff --git a/GuidePronote.md b/GuidePronote.md deleted file mode 100644 index c6cb1e4..0000000 --- a/GuidePronote.md +++ /dev/null @@ -1,202 +0,0 @@ -# Guide-Pronote - -Ce guide pratique explique comment configurer les variables spécifiques à **Pronote** pour le pipeline `pronote-sync`. -Pour un tableau complet des variables disponibles, consultez la page [Configuration](Configuration). - ---- - -## Obtenir l'URL iCal (`PRONOTE_ICAL_URL`) - -L'URL iCal est le flux d'export du calendrier Pronote. Elle contient un **token `icalsecurise`** sensible et doit être traitée comme un mot de passe. - -### Étapes pour obtenir l'URL iCal : -1. Se connecter à l'espace **parent** Pronote. -2. Aller dans la vue **Emploi du temps** (souvent accessible via *Vie scolaire* ou le widget calendrier). -3. Chercher l'icône d'export agenda / synchronisation calendrier (généralement en haut à droite de l'emploi du temps, libellée **« Exporter »** ou **« Synchroniser avec un agenda »**). -4. Une fenêtre modale affiche l'**URL d'abonnement iCal**. - -### Format attendu : -```text -https://.index-education.net/pronote/ical/Edt_Prenom.ics?icalsecurise=&version=2024 -``` - -### Avertissements : -- Le token `icalsecurise` est **sensible** : il est stocké en `SecretStr` et masqué dans les logs. -- Certaines instances Pronote **ne proposent pas** d'export iCal. Si la page d'agenda ne montre que les options **« Personnaliser »** et **« Générer un PDF pour impression »**, l'iCal n'est pas disponible. Dans ce cas, laissez `PRONOTE_ICAL_URL` vide et utilisez `pronotepy` comme source unique. - ---- - -## Obtenir l'URL de connexion (`PRONOTE_URL`) - -`PRONOTE_URL` est l'URL de la page Pronote utilisée par [`pronotepy`](https://github.com/bain3/pronotepy) pour la connexion API. - -### Contraintes : -- C'est l'URL **visible dans le navigateur** sur la page de connexion Pronote, **sans paramètres de requête**. -- **Format** : - ```text - https://.index-education.net/pronote/parent.html - ``` -- Retirez **tout paramètre de query string** (ex. `?identifiant=...`). `pronotepy` ne supporte pas les paramètres de requête dans cette URL. - -### Note importante : -`PRONOTE_URL` et `PRONOTE_ICAL_URL` sont **deux contrats distincts** : l'un ne doit **jamais** être déduit de l'autre. - ---- - -## Type de compte (`PRONOTE_ACCOUNT_TYPE`) - -- **Valeur par défaut** : `parent`. -- Le projet utilise : - - `pronotepy.ParentClient` pour un compte **parent**. - - `pronotepy.Client` pour un compte **élève**. -- Pour un compte parent, conservez la valeur par défaut. - ---- - -## Identifiants (`PRONOTE_USERNAME` et `PRONOTE_PASSWORD`) - -- **`PRONOTE_USERNAME`** : Identifiant de connexion à l'espace parent Pronote. -- **`PRONOTE_PASSWORD`** : Mot de passe associé. - - Le mot de passe est stocké en `SecretStr` et **masqué dans les logs et les erreurs**. - ---- - -## ENT (`PRONOTE_ENT`) - -Si votre collège utilise un **ENT** (Espace Numérique de Travail) pour la connexion à Pronote, renseignez le **slug** correspondant. - -### Fonctionnement : -- Le projet résout ce slug vers une fonction de `pronotepy.ent` via une **liste fermée**. -- Si la connexion est **directe** (pas de redirection ENT), laissez `PRONOTE_ENT` **vide ou absent**. - -### Quand l'ENT est obligatoire - -De nombreuses instances Pronote délèguent l'authentification à un fournisseur d'identité externe (EduConnect, HubEduConnect, SSO SAML). Dans ce cas, `pronotepy` ne peut pas s'authentifier directement avec uniquement un nom d'utilisateur et un mot de passe : il a besoin du résolveur ENT pour gérer le flux d'authentification et fournir les cookies de session nécessaires. - -**Comment savoir si votre instance nécessite un ENT :** -- Si vous obtenez l'erreur `Page html is different than expected. Be sure that pronote_url is the direct url to your pronote page.`, cela signifie presque certainement que votre instance Pronote redirige vers un portail d'authentification (EduConnect/HubEduConnect) et que vous devez configurer `PRONOTE_ENT`. -- Essayez d'ouvrir votre `PRONOTE_URL` dans un navigateur en mode navigation privée/incognito. Si vous êtes redirigé vers une page de connexion EduConnect ou ENT, vous devez configurer l'ENT. - -**Académie de Bordeaux (HubEduConnect) :** -- L'académie de Bordeaux utilise HubEduConnect (via EduConnect) pour l'authentification. -- Configuration : `PRONOTE_ENT=bordeaux` -- Le résolveur `bordeaux` gère le flux HubEduConnect sur `hubeduconnect.index-education.net`. - -**Autres instances EduConnect :** -- De nombreuses académies utilisent EduConnect. Si votre instance redirige vers `educonnect.education.gouv.fr` ou `hubeduconnect.index-education.net`, recherchez le slug correspondant dans le tableau ci-dessous. -- Si votre académie n'est pas listée, la connexion peut ne pas être supportée par `pronotepy` pour le moment. - -> **Note** : Si l'authentification via ENT échoue (en raison de CAPTCHA, de MFA ou d'un flux d'authentification modifié), `pronotepy` prend également en charge la connexion par code QR/token comme alternative. Cela n'est pas encore implémenté dans `pronote-sync`. - -### Slugs ENT supportés : - -| Slug | ENT | -|------|-----| -| `monbureaunumerique` | Mon Bureau Numérique | -| `ent_elyco` | ENT Elyco | -| `bordeaux` | ENT Bordeaux | -| `ent_creuse` | ENT Creuse | -| `occitanie_montpellier` | Occitanie Montpellier | -| `paris_classe_numerique` | Paris Classe Numérique | -| `ile_de_france` | Île-de-France | -| `ent_hdf` | ENT Hauts-de-France | -| `ac_orleans_tours` | Académie Orléans-Tours | -| `ac_poitiers` | Académie Poitiers | -| `ac_rennes` | Académie Rennes | -| `laclasse_educonnect` | LaClasse (EduConnect) | -| `ent77` | ENT 77 | -| `ent_ecollege78` | eCollège 78 | -| `ent_essonne` | ENT Essonne | -| `val_doise` | Val d'Oise | -| `val_de_marne` | Val de Marne | -| `ent_var` | ENT Var | -| `atrium_sud` | Atrium Sud | -| `laclasse_lyon` | LaClasse Lyon | -| `eclat_bfc` | ÉCLAT Bourgogne-Franche-Comté | -| `cas_arsene76` | CAS Arsène 76 | -| `cas_ent27` | CAS ENT 27 | -| `cas_kosmos` | CAS Kosmos | -| `ent_creuse_educonnect` | ENT Creuse (EduConnect) | -| `ent_mayotte` | ENT Mayotte | -| `ent_somme` | ENT Somme | -| `ent_94` | ENT 94 | -| `extranet_colleges_somme` | Extranet Collèges Somme | -| `ac_reunion` | Académie Réunion | - ---- - -## Choix des sources (`PRONOTE_AGENDA_SOURCE`, `PRONOTE_HOMEWORK_SOURCE`, `PRONOTE_MESSAGES_SOURCE`) - -Le pipeline propose trois modes pour récupérer les données Pronote : - -### Modes disponibles : -- **`auto`** (par défaut) : - Essaye d'abord **iCal**, puis bascule vers `pronotepy` **uniquement si iCal lève une exception**. -- **`ical`** : - Utilise **uniquement iCal**, sans bascule silencieuse. - **Requiert** `PRONOTE_ICAL_URL`. -- **`pronotepy`** : - Utilise **uniquement `pronotepy`**, sans bascule silencieuse. - **Requiert** `PRONOTE_URL`, `PRONOTE_USERNAME`, `PRONOTE_PASSWORD`, et `PRONOTE_ENT` (si applicable). - -### Comportements : -- En mode `auto`, si **iCal et `pronotepy` échouent** → **erreur critique explicite**. -- Une **liste vide** est un **succès valide** : elle ne doit pas être assimilée à une panne. -- Les **messages** ne sont disponibles que via `pronotepy` (absents du flux iCal). - **`PRONOTE_MESSAGES_SOURCE` est toujours `pronotepy`**. - ---- - -## Exemple sans iCal (pronotepy uniquement) - -Si votre instance Pronote ne propose pas d'export iCal, utilisez `pronotepy` comme source unique : - -```ini -PRONOTE_URL=https://0640036s.index-education.net/pronote/parent.html -PRONOTE_ACCOUNT_TYPE=parent -PRONOTE_USERNAME=parent.dupont -PRONOTE_PASSWORD=ton_mot_de_passe -PRONOTE_ENT=bordeaux - -# Sources : pronotepy uniquement (pas de repli iCal) -PRONOTE_AGENDA_SOURCE=pronotepy -PRONOTE_HOMEWORK_SOURCE=pronotepy -PRONOTE_MESSAGES_SOURCE=pronotepy -``` - ---- - -## Exemple avec iCal et pronotepy (mode auto) - -Si votre instance Pronote propose l'export iCal, vous pouvez utiliser le mode `auto` pour basculer automatiquement entre les sources : - -```ini -PRONOTE_ICAL_URL=https://.index-education.net/pronote/ical/Edt_Prenom.ics?icalsecurise=&version=2024 -PRONOTE_URL=https://.index-education.net/pronote/parent.html -PRONOTE_ACCOUNT_TYPE=parent -PRONOTE_USERNAME=parent.dupont -PRONOTE_PASSWORD=ton_mot_de_passe -PRONOTE_ENT=bordeaux - -PRONOTE_AGENDA_SOURCE=auto -PRONOTE_HOMEWORK_SOURCE=auto -PRONOTE_MESSAGES_SOURCE=pronotepy -``` - ---- - -## Tester la configuration - -Pour valider votre configuration Pronote, exécutez le pipeline en mode **simulation** : - -```bash -pronote-sync --dry-run --log-level DEBUG -``` - -- Le mode `--dry-run` valide la connexion et le pipeline **sans écrire** dans CalDAV/XMPP. -- Le niveau de log `DEBUG` affiche les **étapes détaillées** pour diagnostiquer d'éventuels problèmes. - ---- - -→ [Configuration](Configuration) — tableau des variables -→ [Sécurité](Sécurité) — gestion des secrets \ No newline at end of file