diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index cb74695..90478d2 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -43,7 +43,7 @@ jobs: - name: Lancer les tests avec couverture env: - # Clé Fernet éphémère : les tests chiffrent des mots de passe de sites. + # Clé Fernet éphémère : les tests chiffrent des clés API IA. CANDITRACK_FERNET_KEY: ${{ secrets.SONAR_FERNET_KEY }} run: | # Génère une clé Fernet jetable si aucun secret n'est fourni. diff --git a/CHANGELOG.md b/CHANGELOG.md index b054f16..cee4fbb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ release du même nom. ## [Non publié] — 1.2.0 +- #43 — Sites d'emploi : suppression de la gestion des **identifiants et mots de + passe**. Seuls le nom, l'URL et le logo d'un site sont désormais conservés ; + les champs `username`/`password` (et leur stockage chiffré) sont retirés du + modèle, du formulaire et de la liste. - #41 — Ajout d'un skill Claude Code `web-development` (`.claude/skills/web-development/`) qui formalise les principes de conception de CandiTrack (thème clair/sombre, connexion aux IA, présentation UI, diff --git a/CLAUDE.md b/CLAUDE.md index 4f74aed..10b50ca 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -50,7 +50,8 @@ docker compose up -d --build # → http://127.0.0.1:53487/ ## Modèles (`tracking/models.py`) -`JobSite` (mot de passe chiffré, `is_builtin`, `logo_url`), `Candidature` (cœur +`JobSite` (nom, URL, `is_builtin`, `logo_url` — plus d'identifiants depuis +l'issue #43), `Candidature` (cœur du suivi, étapes de progression + `motif_cloture` = clôture), `StatusHistory`, `Reminder`, `Interview`, `Contact`, `ApiToken`, `CV`, `AIConfig` (singleton de config du coaching IA, clé Gemini chiffrée — issue #33). Énumérations diff --git a/README.md b/README.md index c31e12c..8ad3eae 100644 --- a/README.md +++ b/README.md @@ -186,9 +186,8 @@ chacun renseigne **sa propre clé API**. **Options → IA**, à côté des infos de quota du tier gratuit). 2. Dans **Options → IA**, choisir le **fournisseur** et coller la clé (et, facultativement, le modèle dans le menu déroulant). Chaque fournisseur garde - sa propre clé, son modèle et sa limite, stockés **chiffrés** en base (Fernet, - comme les mots de passe des sites) ; on bascule de l'un à l'autre sans - ressaisie. + sa propre clé, son modèle et sa limite, stockés **chiffrés** en base + (Fernet) ; on bascule de l'un à l'autre sans ressaisie. 3. Depuis la liste des candidatures, **« ✨ Coaching IA »** ouvre une fenêtre modale : à partir du dernier CV chargé (analysé par Gemini) et des statistiques (volume, motifs de refus, délais…), l'IA propose un positionnement et des diff --git a/templates/tracking/site_list.html b/templates/tracking/site_list.html index f56303f..7379d9f 100644 --- a/templates/tracking/site_list.html +++ b/templates/tracking/site_list.html @@ -5,13 +5,12 @@
Les identifiants sont stockés avec le mot de passe chiffré au repos. - Le logo (favicon du site) est récupéré automatiquement à l'enregistrement.
+Le logo (favicon du site) est récupéré automatiquement à l'enregistrement.
| Logo | Nom | URL | Identifiant | Mot de passe | Actions |
|---|---|---|---|---|---|
| Logo | Nom | URL | Actions | ||
| {% if s.url %}{{ s.url }}{% else %}—{% endif %} | -{{ s.username|default:"—" }} | -{% if s.password %}••••••{% else %}—{% endif %} | Modifier |