From 999ed76ba73d8dda719990769bf6f325a69712df Mon Sep 17 00:00:00 2001 From: Antoine Van Elstraete Date: Thu, 10 Sep 2026 14:01:25 +0200 Subject: [PATCH] =?UTF-8?q?release:=20v0.1.2=20=E2=80=94=20authentificatio?= =?UTF-8?q?n=20QR=20code=20/=20token=20Pronote?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bump version 0.1.0 → 0.1.2. CHANGELOG mis à jour avec les ajouts, corrections et issues connues. --- CHANGELOG.md | 37 +++++++++++++++++++++++++++++++++++++ pyproject.toml | 2 +- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c56a108..ff336d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,43 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.1.2] - 2026-09-10 + +### Added + +- **Authentification QR code / token** (`PRONOTE_AUTH_MODE=qr_token`) : alternative au mode `password` pour les instances Pronote utilisant HubEduConnect/EduConnect où l'authentification par mot de passe échoue (CAPTCHA, MFA, flux SAML modifié). + - Enrôlement initial via QR code (`pronotepy.qrcode_login`) + - Persistance du token rotatif dans `.pronote_auth_state.json` (permissions `0600`, écriture atomique, symlink-safe) + - Login subsequent via `pronotepy.token_login` avec token persisté + - Notification XMPP actionnable en cas d'échec de rotation (`PronoteAuthRotationError`) + - Persistance du token après chaque opération de données réussie et dans le chemin d'erreur (refresh pronotepy) + - `_is_pronotepy_configured()` mode-aware : `qr_token` ne requiert que `PRONOTE_URL` + - Redaction des secrets explicites (token, PIN, jeton QR) dans tous les logs +- Nouvelles variables d'environnement : `PRONOTE_AUTH_MODE`, `PRONOTE_QR_CODE_FILE`, `PRONOTE_QR_PIN` +- Documentation : section "Contrat d'authentification QR code / token" dans `AGENTS.md`, section QR code dans le wiki `GuidePronote` + +### Fixed + +- `PRONOTE_URL` ignoré à cause du double préfixe `env_prefix` (renommage `pronote_url` → `url` dans `PronoteSettings`) +- `PRONOTE_ENT` rendu optionnel pour les connexions pronotepy directes +- `.env.example` corrigé (`eleve.html` → `parent.html`) + +### Changed + +- Wiki `GuidePronote` enrichi : section "Quand l'ENT est obligatoire" (EduConnect/HubEduConnect), exemple Bordeaux +- `AGENTS.md` : ajout de la section §13 "Versionnage et releases" + +### Known Issues + +- #20 — Triple authentification pronotepy (double INIT + refresh) lors d'un run +- #21 — Erreur pronotepy 20 « La page a expiré ! (11) » sur `get_informations` + +### Tests + +- 694 tests passés, couverture 94.93% +- 35 nouveaux tests QR/token : config, auth_state, client, propagation, intégration end-to-end + + ## [0.1.0] - 2026-09-08 Initial release covering milestones M1 through M15. diff --git a/pyproject.toml b/pyproject.toml index 6d124b8..d243a64 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "pronote-sync" -version = "0.1.0" +version = "0.1.2" description = "Synchronisation Pronote → CalDAV + XMPP" license = {text = "MIT"} requires-python = ">=3.13.5"