diff --git a/blog/2026-09-20-nouvelle-version-2.17.md b/blog/2026-09-20-nouvelle-version-2.17.md index 385c73e..892025f 100644 --- a/blog/2026-09-20-nouvelle-version-2.17.md +++ b/blog/2026-09-20-nouvelle-version-2.17.md @@ -15,10 +15,10 @@ We are pleased to announce the release of version **2.17** of ClientXCMS! Discover the major new features and screenshots in our [complete overview of ClientXCMS 2.17](/blog/clientxcms-v2-17-domaines-securite-facturation). ### Additions + - ➕ Added dynamic CSS variables for the theme's primary color, allowing instant brand palette modification from the admin panel. - ➕ Added an automated i18n pipeline with French as the source of truth, DeepL/Azure synchronization, and reliable release builds. - ➕ Added support for JPG/JPEG assets in Vite bundling rules. - - ➕ Officially launched **domain-name management** with progressive search, real-time availability checking, and cached results. - ➕ Added the [**OpenProvider** registrar module](/extensions/modules/openprovider) with production and sandbox support, automatic TLD import, fixed or percentage-based bulk pricing, and reusable nameserver/DNS configuration. - ➕ Added filtering and selection when importing registrar catalogs. @@ -29,7 +29,6 @@ Discover the major new features and screenshots in our [complete overview of Cli - ➕ Added [**EU VAT Check**](/extensions/addons/vat-check-eu) to validate European VAT numbers through VIES with configurable caching. - ➕ Added seller tax identity, VAT regime, tax timezone, activation date, active provider, and public-sector provider settings. - ➕ Added an electronic-transmission history to follow documents and provider statuses. -- ➕ Added **invoice installment payments** with atomic customer-balance debit and precise VAT preservation on each installment. - ➕ Added **compromised-password detection** via HaveIBeenPwned and enforced minimum password length. - ➕ Added a **closed-grammar email-template engine** replacing arbitrary Blade execution, with automatic migration of existing templates and strict content sanitization. - ➕ Added **extension integrity verification**: SHA-256 checksum and signature validation on downloaded archives, with extraction confined to the extension's own directory. @@ -39,6 +38,9 @@ Discover the major new features and screenshots in our [complete overview of Cli - ➕ Added the [**Brevo newsletter addon**](/extensions/addons/brevo). ### Changes +- 🔄 Standardized console command exit codes (0 for success, 1 for failure). +- 🔄 Uniformized administration route names and view folders to strictly use kebab-case. +- 🔄 Enhanced the `ThemeManager` with improved theme metadata handling and reorganized the `ThemeSeeder`. - 🔄 Enhanced the Extension Updater: automatic cleanup of obsolete files, exact local version resolution, and auto-registration of unlisted extensions. - 🔄 Improved theme-section editing: repaired page sections accordion, added a sticky action bar, and ensured ARIA/contrast compliance. - 🔄 Refactored Dark Mode toggle: moved the `dark` class to the `` tag and fixed toggle-icon synchronization. @@ -56,11 +58,18 @@ Discover the major new features and screenshots in our [complete overview of Cli - 🔄 Vite 8 now preserves symlinks when building theme and addon assets. ### Fixes +- 🔧 Fixed coupon abuse through concurrency protection: pending orders now temporarily reserve coupon quotas to prevent race conditions during simultaneous checkouts. +- 🔧 Fixed the additional pricing toggle (accordion) in the administration which could not be closed after opening. +- 🔧 Fixed the error handler to prevent form validation errors from being transformed into 500 error pages in production. +- 🔧 Fixed the reset of the delivery state when renewing services, and corrected the exact calculation of domain renewal prices. - 🔧 Fixed the server connectivity test in provisioning and secured stored connection credentials from leaking in the interface. - 🔧 Fixed the customer factory to generate valid phone numbers (stabilizing `SmsServiceTest`) and maintained `install.php` tracking in git. ### Security +- 🔒 **Secured server credentials**: Passwords are no longer exposed in the admin HTML DOM, and re-entry is required when modifying the host or IP. +- 🔒 **Secured payment webhooks & closed invoice immutability**: Strict validation of paid amount, currency, and status in Stripe/Mollie/PayPal IPN, and blocking the reopening of closed invoices. +- 🔒 **Hardened Client API**: Restricted access to active Sanctum client tokens, enforced 2FA, implemented anti-timing attack hashes, masked sensitive metadata, and bounded pagination. - 🔒 **Encrypted sensitive data at rest**: TOTP / 2FA secrets and system settings marked as encrypted are now actually encrypted in the database. - 🔒 **Strict API authentication**: the application API now rejects web sessions as proof; API-key abilities are filtered and expiration is enforced. diff --git a/blog/2026-09-21-clientxcms-v2-17-domaines-securite-facturation.md b/blog/2026-09-21-clientxcms-v2-17-domaines-securite-facturation.md index c226e9d..92a8b2d 100644 --- a/blog/2026-09-21-clientxcms-v2-17-domaines-securite-facturation.md +++ b/blog/2026-09-21-clientxcms-v2-17-domaines-securite-facturation.md @@ -94,3 +94,5 @@ This release includes an extensive security overhaul: Version 2.17 also brings service lifecycle controls, mass-action components, UI harmonization, button and color-palette consistency, Vite 8 compatibility, and the new [Brevo newsletter addon](/extensions/addons/brevo). Brevo connects the footer subscription form to a selected contact list while supporting API-key and server-IP security. Read the [complete ClientXCMS 2.17 changelog](/blog/nouvelle-version-2.17) for every technical detail. + +Ready to upgrade your system? Follow our [Upgrade Guide](/docs/installation/upgrade) to install version 2.17. diff --git a/docs/installation/upgrade.md b/docs/installation/upgrade.md index 6b63bdf..c124377 100644 --- a/docs/installation/upgrade.md +++ b/docs/installation/upgrade.md @@ -30,7 +30,7 @@ import TabItem from '@theme/TabItem'; 1. Download the latest release from GitHub and save it as `clientxcms.zip`: ```bash -curl -L -o clientxcms.zip "https://github.com/ClientXCMS/ClientXCMS/releases/latest" +curl -fsSL -o clientxcms.zip "https://github.com/ClientXCMS/ClientXCMS/archive/refs/tags/$(curl -fsSLI -o /dev/null -w '%{url_effective}' https://github.com/ClientXCMS/ClientXCMS/releases/latest | sed 's#.*/##').zip" ``` 2. Put your application in maintenance mode: @@ -42,9 +42,7 @@ php artisan down 3. Extract the archive and replace the files: ```bash -unzip clientxcms.zip -d /var/www/clientxcms -mv /var/www/clientxcms/ClientXCMS-*/* /var/www/clientxcms -rm -r /var/www/clientxcms/ClientXCMS-* +unzip -q clientxcms.zip -d /tmp/cx && shopt -s dotglob && mv /tmp/cx/ClientXCMS-*/* /var/www/clientxcms/ && rm -rf /tmp/cx ``` 4. Install dependencies and run migrations: @@ -77,7 +75,7 @@ php artisan clientxcms:on-update ```bash cd /var/www/clientxcms -git fetch --all --prune +git fetch --all --tags --prune git checkout master git pull origin master ``` diff --git a/i18n/fr/docusaurus-plugin-content-blog/2026-09-20-nouvelle-version-2.17.md b/i18n/fr/docusaurus-plugin-content-blog/2026-09-20-nouvelle-version-2.17.md index 260e1c9..6369eb3 100644 --- a/i18n/fr/docusaurus-plugin-content-blog/2026-09-20-nouvelle-version-2.17.md +++ b/i18n/fr/docusaurus-plugin-content-blog/2026-09-20-nouvelle-version-2.17.md @@ -15,6 +15,10 @@ Nous sommes heureux de vous annoncer la sortie de la version **2.17** de ClientX Découvrez les nouveautés principales et les captures dans notre [présentation complète de ClientXCMS 2.17](/fr/blog/clientxcms-v2-17-domaines-securite-facturation). ### Ajouts +- ➕ Ajout de la journalisation systématique et d'un indicateur de santé pour les tâches planifiées (Cron Scheduler), incluant la durée d'exécution et la capture des erreurs. +- ➕ Ajout de la surveillance en temps réel des files d'attente et des workers (Worker Heartbeat) avec alertes et interface dédiée dans la sécurité. +- ➕ Ajout d'un composant modal d'édition riche et multilingue pour les descriptions de produits, avec aperçu en direct. +- ➕ Ajout de la possibilité d'annuler les livraisons de services en attente directement depuis la liste d'administration. - ➕ Lancement officiel de la **gestion des noms de domaine** avec recherche progressive, vérification de disponibilité en temps réel et mise en cache des résultats. - ➕ Ajout du [module **OpenProvider**](/fr/extensions/modules/openprovider) avec prise en charge de la production et de la sandbox, importation automatique des TLD, tarification groupée fixe ou en pourcentage et configuration DNS réutilisable. @@ -27,7 +31,7 @@ Découvrez les nouveautés principales et les captures dans notre [présentation - ➕ Ajout de l'identité fiscale du vendeur, du régime de TVA, du fuseau fiscal, de la date d'activation et des providers principal et public. - ➕ Ajout d'un historique des transmissions électroniques et des statuts retournés par les providers. - ➕ Ajout du paiement des factures en plusieurs échéances avec débit atomique du solde client et conservation précise de la TVA. -- ➕ Ajout de la détection des mots de passe compromis avec HaveIBeenPwned et d'une longueur minimale renforcée. +- ➕ Ajout d'une **politique globale et configurable de mot de passe** : paramétrage de la longueur, complexité et refus des mots de passe compromis (Pwned) depuis l'administration, avec validation stricte et indicateur frontend. - ➕ Ajout d'un moteur fermé pour les modèles d'e-mails, avec migration automatique et assainissement strict du contenu. - ➕ Ajout de la vérification d'intégrité des extensions avec sommes SHA-256, signatures et extraction confinée. - ➕ Ajout du choix entre une navigation d'administration verticale ou horizontale. @@ -39,6 +43,9 @@ Découvrez les nouveautés principales et les captures dans notre [présentation - ➕ Ajout du support des assets JPG/JPEG dans les règles de bundling Vite. ### Modifications +- 🔄 Standardisation des codes de retour des commandes console (0 pour succès, 1 pour échec). +- 🔄 Uniformisation des noms de routes et répertoires de vues de l'administration en kebab-case. +- 🔄 Amélioration du `ThemeManager` avec une meilleure gestion des métadonnées des thèmes et réorganisation du `ThemeSeeder`. - 🔄 Refonte de la navigation mobile sous forme de panneau latéral accessible. - 🔄 Harmonisation des boutons, des contrastes et de la palette de couleurs. @@ -55,11 +62,18 @@ Découvrez les nouveautés principales et les captures dans notre [présentation - 🔄 Refonte de la bascule du Dark Mode : déplacement de la classe `dark` sur la balise `` et correction de la synchronisation de l'icône. ### Corrections +- 🔧 Correction des abus de codes promo via une protection anti-course : les commandes en attente réservent désormais temporairement le quota d'utilisation du coupon. +- 🔧 Correction du repliement des tarifs additionnels dans l'administration (qui ne pouvait plus être refermé après ouverture). +- 🔧 Correction du gestionnaire d'erreurs pour empêcher la transformation des erreurs de validation en pages 500 en production. +- 🔧 Correction de la réinitialisation de l'état de livraison lors du renouvellement des services et calcul exact du tarif de renouvellement des domaines. - 🔧 Correction du test de connexion des serveurs et protection des identifiants enregistrés. - 🔧 Correction de la génération des numéros de téléphone dans les tests. ### Sécurité +- 🔒 **Sécurisation des identifiants serveurs** : masquage des mots de passe dans le DOM HTML de l'administration et obligation de les ressaisir lors du changement d'hôte ou d'IP. +- 🔒 **Sécurisation des webhooks de paiement et immuabilité des factures** : validation stricte du montant payé, de la devise et du statut (Stripe, Mollie, PayPal IPN), avec impossibilité de réouvrir ou marquer payée une facture déjà clôturée. +- 🔒 **Durcissement de l'API Client** : accès restreint aux tokens Sanctum actifs, 2FA obligatoire, hash anti-attaque temporelle, masquage des métadonnées sensibles et pagination strictement bornée. - 🔒 Chiffrement au repos des secrets TOTP/2FA et des paramètres sensibles. - 🔒 Authentification API stricte, avec expiration et capacités des clés. diff --git a/i18n/fr/docusaurus-plugin-content-blog/2026-09-21-clientxcms-v2-17-domaines-securite-facturation.md b/i18n/fr/docusaurus-plugin-content-blog/2026-09-21-clientxcms-v2-17-domaines-securite-facturation.md index f5cb4d0..ce45dcf 100644 --- a/i18n/fr/docusaurus-plugin-content-blog/2026-09-21-clientxcms-v2-17-domaines-securite-facturation.md +++ b/i18n/fr/docusaurus-plugin-content-blog/2026-09-21-clientxcms-v2-17-domaines-securite-facturation.md @@ -88,3 +88,5 @@ Cette version comprend notamment : La version 2.17 apporte également des contrôles du cycle de vie des services, des actions groupées, une interface harmonisée, la compatibilité Vite 8 et le nouvel [addon de newsletter Brevo](/fr/extensions/addons/brevo). Brevo relie le formulaire du pied de page à une liste de contacts tout en sécurisant l'accès avec une clé API et l'autorisation de l'adresse IP du serveur. Consultez le [journal complet de ClientXCMS 2.17](/fr/blog/nouvelle-version-2.17) pour découvrir tous les changements techniques. + +Prêt à mettre à jour votre système ? Suivez notre [guide de mise à jour](/docs/installation/upgrade) pour installer la version 2.17. diff --git a/static/img/blog/v2.17/toggle_orientation.png b/static/img/blog/v2.17/toggle_orientation.png index 0d1882e..9b729bd 100644 Binary files a/static/img/blog/v2.17/toggle_orientation.png and b/static/img/blog/v2.17/toggle_orientation.png differ