Compare commits
1 Commits
fix/qr-tok
...
feat/qr-to
| Author | SHA1 | Date | |
|---|---|---|---|
|
fa87832125
|
37
CHANGELOG.md
37
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/),
|
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).
|
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
|
## [0.1.0] - 2026-09-08
|
||||||
|
|
||||||
Initial release covering milestones M1 through M15.
|
Initial release covering milestones M1 through M15.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "pronote-sync"
|
name = "pronote-sync"
|
||||||
version = "0.1.0"
|
version = "0.1.2"
|
||||||
description = "Synchronisation Pronote → CalDAV + XMPP"
|
description = "Synchronisation Pronote → CalDAV + XMPP"
|
||||||
license = {text = "MIT"}
|
license = {text = "MIT"}
|
||||||
requires-python = ">=3.13.5"
|
requires-python = ">=3.13.5"
|
||||||
|
|||||||
Reference in New Issue
Block a user