Aller au contenu
Candidater

Journal des modifications

Les évolutions de Cohez.io, de la plus récente à la plus ancienne.

173 versions publiées.

Versions 1 à 10 sur 173

0.25.19.0 — 2026-10-07

Ajouts

  • Conditions d’utilisation /conditions-utilisation (#360, 2026-10-06). Ces conditions courtes (version 2026-10, dix articles) s’adressent à toute personne qui utilise Cohez.io : membre du bureau, salarié, bénévole, ou personne qui remplit un formulaire public d’une association. Elles couvrent l’accès, la sécurité du compte, le bon usage, les rôles (l’association est responsable de traitement, l’éditeur sous-traitant), les formulaires publics, la phase de test, la responsabilité, la suspension, les données personnelles et le droit applicable. La page est en noindex, hors sitemap, avec un lien dans le pied de page de la vitrine. Les comptes existants n’ont pas à les accepter de nouveau.
  • Journal d’acceptation des conditions d’utilisation (#360, 2026-10-06). Chaque acceptation ajoute une ligne à la table terms_acceptances (utilisateur, association, version du texte, date, parcours), jamais modifiée : quand les conditions évoluent, la preuve de chaque version acceptée est conservée. Ni adresse IP ni navigateur ne sont enregistrés ; l’inscription passe par un lien signé envoyé à l’adresse de la personne. Les lignes sont supprimées avec le compte ou avec l’association. La page affiche la version en vigueur, la même que celle enregistrée.
  • Pied de page du funnel d’inscription public (#360, 2026-10-06). Les pages publiques des associations affichent « Propulsé par Cohez.io · Conditions d’utilisation · Confidentialité », avec des liens absolus vers le domaine racine qui s’ouvrent dans un nouvel onglet.

Modifications

  • Case d’acceptation de l’inscription sur invitation (#360, 2026-10-06). La case renvoie désormais aux conditions d’utilisation et n’est plus présentée comme un consentement RGPD : la description indique que les données sont traitées par l’association avec Cohez.io et renvoie à la politique de confidentialité. Elle est exigée de tous, salariés compris (terms_accepted_at renseigné pour tout nouveau compte).
  • Preuve de l’acceptation déclarée comme traitement de l’éditeur (#360, 2026-10-06). La politique de confidentialité la décrit (section « Acceptation des conditions d’utilisation » : données, intérêt légitime, aucune adresse IP, durée), l’article 1 bis de la fiche /dpa la cite parmi les traitements dont l’éditeur est responsable (ligne d’historique du 6 octobre, version 2026-10 inchangée), et l’article 9 des conditions d’utilisation y renvoie.

0.25.18.0 — 2026-10-06

Ajouts

  • Demande de résiliation par l'association (#359, 2026-10-06). Un administrateur de l'association voit désormais un bloc « Contrat Cohez.io » dans Paramètres → Association, avec la date de signature, la prochaine échéance et la date limite pour résilier. Il peut demander la résiliation en deux étapes (saisie puis récapitulatif) : la date d'effet est la prochaine échéance du contrat, et une demande faite le jour de l'échéance prend effet à la suivante. Un accusé de réception est envoyé par email au demandeur, et la plateforme est prévenue. Une fois la date d'effet passée, la page affiche « Contrat résilié depuis le … ». Annuler une demande passe par un contact avec Cohez.io. Une page d'aide, « Contrat, résiliation et avis de renouvellement », explique la démarche.
  • Avis de renouvellement automatique (#359, 2026-10-06). Chaque jour à 8 h (heure de Paris), Cohez.io envoie l'avis de reconduction tacite aux associations dont l'échéance approche, entre trois mois et un mois avant la date. Il est adressé à l'email de contact et aux administrateurs, et rappelle la date limite pour refuser la reconduction. L'envoi est unique par échéance. Il est ignoré pour une association inactive, sans destinataire, ou qui a déjà demandé la résiliation. Un envoi hors délai est signalé comme tel.
  • Section Contrat dans l'administration (#359, 2026-10-06). La fiche d'une association affiche ses échéances, un badge « Contrat non renseigné » le cas échéant, et des avertissements quand on modifie les dates pendant une résiliation en cours. Deux onglets listent ses résiliations (statut en cours, effective ou annulée, saisie d'une résiliation reçue par email, annulation tracée) et ses avis de renouvellement (lecture seule).
  • Liste « Résiliations » de la plateforme (#359, 2026-10-06). Elle réunit les résiliations de toutes les associations, en lecture seule, avec un filtre par statut et un badge dans le menu. Le signal « À désactiver » repère une association encore active dont le contrat est résilié, dans cette liste, dans la liste des associations et sur leur fiche. Rien n'est désactivé automatiquement.

Modifications

  • Conservation des preuves de résiliation (#359, 2026-10-06). Les résiliations et les avis de renouvellement sont des preuves : ils ne sont jamais supprimés en cascade avec l'association. Les jeux de données de démonstration les purgent explicitement avant de supprimer une association.
  • Anonymisation (#359, 2026-10-06). db:anonymize anonymise désormais le nom, l'email, l'adresse IP et le motif des résiliations, ainsi que les destinataires des avis de renouvellement.

Corrections

  • Dates de contrat incohérentes (#359, 2026-10-06). Des dates de contrat incohérentes en base (échéance non postérieure à la signature) sont traitées comme « pas de contrat » et journalisées, au lieu de provoquer une erreur 500 sur la page Association ou à l'envoi des avis.

0.25.17.0 — 2026-10-06

Modifications

  • Pages légales alignées sur le contrat final Partenaire Fondateur (version 2026-10) (2026-10-06). /conditions-generales reprend le contrat signé. Ajouts : la date d'effet (la garantie tarifaire de deux ans court à partir d'elle, plus de la signature), le socle essentiel (accès aux données, export CSV, gestion des membres et des cotisations), les obligations de moyens et la vigilance de l'association, un préavis de sortie de beta porté à deux mois avec la liste des avantages acquis, la propriété intellectuelle détaillée (contenus, retours, contributions protégeables, référence commerciale), la responsabilité réécrite (plafond réservé à l'association qui agit à des fins professionnelles, assurance MAIF), les neuf cas de remboursement au prorata, trente jours de consultation et d'export après la fin du contrat (l'accès n'est plus coupé), le nouvel article 15 bis (arrêt du service, non-reconduction par l'éditeur, transfert du contrat) et la valeur de l'exemplaire signé électroniquement. /dpa précise la conservation des sauvegardes (sept jours), la rétention chez Mistral AI (trente jours, détection des abus), l'archivage des pièces de santé en fin de saison, la résiliation ouverte par une objection à un nouveau sous-traitant et une nouvelle section « Fin du contrat ». /confidentialite décrit les traitements que l'éditeur mène pour son propre compte : sécurité du logiciel, prévention des abus et statistiques d'usage anonymisées. L'offre, la FAQ et la page tarifs font partir la garantie du début de l'abonnement.

0.25.16.0 — 2026-10-06

Ajouts

  • Fiche de traitement /dpa (#357, 2026-10-06). Le DPA signé par les associations (article 2.3) renvoie à une fiche consultable en ligne. Elle existe désormais, en version 2026-10. Elle décrit les fonctionnalités et les données traitées par chacune, les fonctionnalités optionnelles (vérification santé, enregistrement audio, identification des adhérents connus) et les garanties de l'assistance par IA. Elle liste aussi les sous-traitants ultérieurs (Clever Cloud, OVHcloud, Brevo, Laravel Nightwatch, Mistral AI), les mesures de sécurité et l'historique des versions. Elle annonce la phase de test (beta) et signale la gouvernance comme en cours de développement. La page est en noindex, hors sitemap, avec un lien dans le pied de page.
  • Contrat et facturation des associations abonnées dans /confidentialite (#357, 2026-10-06). Cette nouvelle section décrit le traitement dont l'éditeur est responsable : données du représentant, de l'association, du contrat signé et des factures, bases légales (6.1.b, 6.1.c), durées de conservation (contrat + 5 ans, pièces comptables 10 ans). Les destinataires sont Subnoto (signature électronique), Qonto (banque, factures, comptabilité) et l'administration fiscale. La facturation se fait par virement, sans prestataire de paiement en ligne.
  • Journal des modifications public /changelog (#357, 2026-10-06). La vitrine publie ce fichier, dix versions par page, avec une recherche plein texte qui ignore casse et accents (les pages de résultats sont en noindex) : suggestions de recherche, bouton d'effacement, mots trouvés surlignés, pagination numérotée. Les intitulés de section sont traduits (Ajouts, Modifications, Corrections…). Lien « Journal des modifications » dans le pied de page ; page indexable et au sitemap, 404 sur les sous-domaines de tenant et d'administration. Dans le back-office des associations, la version en cours s'affiche à gauche du bouton « Aide » et ouvre le journal dans un nouvel onglet. Les quatre mentions de l'ancien nom du produit sont réécrites dans le fichier.

Modifications

  • Conditions générales reprises du contrat d'abonnement (#357, 2026-10-06). /conditions-generales suit désormais la numérotation du contrat signé par les Partenaires Fondateurs (articles 1 à 18, et 3 bis). La phase de test vient en premier, et le contrat signé prévaut en cas de différence. Trois clauses contredisaient le contrat et sont corrigées :

    • la reconduction suit le rappel de l'article L.215-1 du Code de la consommation, au lieu d'un préavis de 30 jours ;
    • les remboursements au prorata et le droit de rétractation de 14 jours sont rétablis ;
    • la responsabilité est plafonnée à 500 € (5 000 € pour les données), sans exclure les pannes de l'hébergeur.

    Seul le tarif Partenaire Fondateur y figure.

  • « Partenaire Fondateur » remplace « association pilote » (#357, 2026-10-06). Le site reprend le nom du contrat, sur l'accueil, /tarifs, /merci et les pages légales, ainsi que dans le mail de candidature. La période se nomme « phase de test ». Le bouton de la barre de navigation devient « Candidater ». L'objectif Matomo « Candidature pilote » et la clé vitrine.pilot_seats_total ne changent pas.

  • Polices auto-hébergées (#357, 2026-10-06). Fraunces, Geist et Geist Mono sont servies depuis les assets de l'application (@fontsource, sous-ensemble latin) au lieu de Bunny Fonts. Aucun service de polices tiers ne reste dans la CSP ni dans le cache PWA.

  • Bandeaux « document de travail » et « non opposable » retirés des pages légales (#357, 2026-10-06). Les pages restent en noindex jusqu'à leur relecture juridique.

Corrections

  • Mentions légales d'une entreprise individuelle (#357, 2026-10-06). « Adresse » remplace « Siège social », et le téléphone de l'éditeur est affiché (LCEN). Il se règle avec la variable VITRINE_LEGAL_PHONE, à définir sur Clever Cloud ; vide, la ligne n'apparaît pas.

0.25.15.0 — 2026-10-02

Corrections

  • Rapports CSP « eval » sur le back-office (2026-10-02). La librairie de glisser-déposer vuedraggable 4.1.0 (cours, rubriques et propositions de campagne) embarquait un shim webpack 4 qui tente new Function("return this"). La CSP le bloquait et chaque chargement de ces écrans envoyait un rapport script-src 'eval'. Le rapport pouvait porter l'URL de la page précédente (/dashboard, racine), parce qu'Inertia charge la page suivante avant de changer d'URL. Le comportement n'était pas affecté. vuedraggable est remplacé par vue-draggable-plus (ESM, sans eval). À noter : cette librairie embarque sa propre copie de Sortable (1.15.2), dont les correctifs n'arrivent que par une nouvelle version de vue-draggable-plus.
  • Ordre enregistré seulement s'il change (2026-10-02). Relâcher un cours, une rubrique ou une proposition à sa place d'origine n'envoie plus de requête de réordonnancement ni de rechargement de page.

Modifications

  • Code de glisser-déposer chargé seulement là où il sert (2026-10-02). Ce code était inclus dans le bundle commun chargé par toutes les pages, y compris le funnel public d'inscription. Il n'est plus téléchargé que par les écrans qui l'utilisent. Le bundle commun passe de 178 Ko à 125 Ko.

0.25.14.0 — 2026-10-02

Modifications

  • Rapports CSP : localisation du code fautif journalisée (2026-10-02). Le log d'un rapport CSP indique désormais d'où vient le code bloqué : source-file, line-number et column-number. Il devient possible de distinguer un script de l'application d'une extension de navigateur (cas d'un script inline isolé bloqué sur le funnel /register). source-file est réduit à scheme://host[:port]/chemin : la query, le fragment et l'userinfo sont supprimés, la longueur est bornée à 200 caractères, et seuls les schémas http, https et extensions sont conservés. Par précaution RGPD, les segments du chemin qui ressemblent à un identifiant (numérique, UUID, hexadécimal long) sont remplacés par :id. Le regroupement des rapports, le plafond de 8 Ko et la CSP elle-même ne changent pas.

0.25.13.0 — 2026-10-01

Ajouts

  • Champ « service » des logs GlitchTip renseigné (2026-10-01). Chaque log envoyé à GlitchTip porte l'attribut service.name (web, queue ou scheduler), que GlitchTip affiche dans son champ service, resté vide jusqu'ici. Les commandes lancées par le scheduler, qui tournent dans un sous-processus, sont reconnues grâce au contexte Laravel que le scheduler leur transmet. Les commandes manuelles et de déploiement restent sans service. Seul le canal sentry_logs est concerné : syslog et Nightwatch ne changent pas.

Corrections

  • Appels de LaunchKit bloqués par la CSP (2026-10-01). Le SDK LaunchKit (BWORLDS, test en cours) appelle https://api.bworlds.co pour sa configuration, son heartbeat, ses erreurs et le session replay ; connect-src ne l'autorisait pas, d'où un rapport CSP par appel. L'origine est ajoutée au connect-src des pages tenant seulement, jamais au panel admin. C'est la seule origine contactée par @bworlds/launchkit 1.18.3.
  • Rapports CSP regroupés dans les logs (2026-10-01). Une même violation produisait un log par requête bloquée. Les rapports sont désormais regroupés par directive et origine bloquée (scheme://host[:port]) : au plus un log par groupe et par heure, avec un message lisible tel quel, par ex. CSP connect-src bloqué : https://api.bworlds.co. Le corps lu reste plafonné à 8 Ko, le payload brut n'est jamais journalisé, et tout ce qui entre dans la clé de cache et le message est borné en longueur.

0.25.12.0 — 2026-09-29

Ajouts

  • Aide en ligne : rubrique Adhérents complétée (#334, 2026-09-29). Deux guides pour les dirigeants : « Fiche et statuts » (retrouver un adhérent, lire sa fiche, le badge d'adhésion comme seul repère fiable, le champ Statut figé à la création, désactiver sans rien effacer) et « Doublons : que faire » (d'où viennent les doublons, garder la fiche la plus ancienne, désactiver l'autre, pas d'outil de fusion). Les guides décrivent le comportement actuel, limites comprises : une fiche désactivée compte encore pour l'identification (« Déjà adhérent ? » reste muet face à deux fiches identiques) et pour l'e-mail d'un salarié, et la date de création d'une fiche n'est affichée nulle part. Chemins figés par des tests ; captures dans une PR suivante.

Corrections

  • Aide « Identification des adhérents » : une fiche non reconnue affiche « Non adhérent » et non « en attente », et la fiche en double se désactive au lieu d'être supprimée, ce qu'aucun écran ne permet.

0.25.11.0 — 2026-09-29

Ajouts

  • Aide en ligne : rubrique Paniers & paiements (#333, 2026-09-29). Six guides pour les trésoriers et dirigeants : comprendre un panier, versements, paiement manuel, paiement en ligne HelloAsso, relances, annuler une inscription. Les guides décrivent le comportement actuel, limites comprises (pas de remboursement par Cohez.io, versement corrigé par rejet, pas de paiement en plusieurs fois HelloAsso). L'accueil de l'aide ajoute l'étape « Choisir les moyens de paiement » avant l'ouverture, et les pages Inscriptions renvoient vers la nouvelle rubrique. Chemins figés par des tests ; captures dans une PR suivante.

0.25.10.0 — 2026-09-29

Ajouts

  • Bouton « Aide » dans le header du back-office (#332, 2026-09-29). Un bouton à droite du header, présent sur toutes les pages de l'espace association et pour tous les rôles, ouvre l'aide en ligne dans un nouvel onglet (annoncé aux lecteurs d'écran ; sur mobile, icône seule avec le même nom accessible). Le lien vise le domaine racine (cohez.io/aide), seul hôte où l'aide est servie : l'URL est calculée côté serveur depuis APP_DOMAIN et le schéma d'APP_URL, jamais celle du sous-domaine de l'association, où /aide répond 404. Des tests vérifient que le lien désigne une page d'aide existante, qu'il arrive à chaque rôle et qu'aucune URL d'aide n'est écrite en dur côté front.