Aller au contenu
Produit · 6 min de lecture

WITHMIA v1.0.5 — Sécurité, qualité et facturation

Rate limiting sur toute l'API, pipeline CI/CD avec GitHub Actions, suite de tests automatisés, système de parrainage complet et génération de factures PDF aux couleurs de WITHMIA.

É

Équipe WITHMIA

WITHMIA

Note (juillet 2026) : les formules Business et Enterprise s’appellent désormais Team et Max. Les tarifs restent inchangés.

La v1.0.4 a bâti un modèle économique viable. La v1.0.5 renforce les fondations : protection de l’API, qualité de code automatisée et facturation professionnelle. Cette mise à jour fait de WITHMIA une plateforme prête à passer à l’échelle en toute confiance.

Rate limiting : une protection sur chaque route

Toutes les routes de l’API sont désormais protégées par un rate limiting granulaire. Six limiteurs différents selon le type d’opération :

LimiteurRoutes protégéesLimite
apiProfil, tickets, canaux, base de connaissances, configuration60 req/min
chatwoot-proxyProxy des conversations et messages en temps réel120 req/min
evolutionInstances WhatsApp (Evolution API)60 req/min
integrationsAgenda, produits, ventes, intégrations externes60 req/min
billingAbonnements, checkout, dépassement, factures20 req/min
adminPanneau d’administration30 req/min

Pourquoi c’est important ?

Sans rate limiting, un seul acteur malveillant (ou un bug côté client) peut saturer toute l’API. Avec cette protection :

  • Prévention des abus — les bots et les scrapers ne peuvent plus bombarder les endpoints
  • Stabilité en charge — l’API répond de façon prévisible, même en cas de pic de trafic
  • Protection financière — l’endpoint de facturation est particulièrement gardé, à 20 req/min
  • Chatwoot optimisé — le proxy de discussion a la limite la plus haute (120 req/min) parce qu’il est en temps réel

Chaque limiteur s’applique par utilisateur authentifié, ou par IP pour les requêtes publiques. Les réponses incluent les en-têtes standards X-RateLimit-Limit, X-RateLimit-Remaining et Retry-After.

CI/CD : déploiement automatisé avec GitHub Actions

WITHMIA dispose maintenant d’un pipeline complet d’intégration et de déploiement continus. Chaque push sur main déclenche automatiquement :

Backend (PHP)

  • PostgreSQL 16 + Redis 7 en services du pipeline
  • Installation des dépendances avec Composer
  • Exécution de toute la suite de tests avec Pest
  • Variables d’environnement de test isolées

Frontend (TypeScript/React)

  • Installation des dépendances avec npm
  • ESLint — validation du style et détection d’erreurs
  • TypeScript — vérification des types sur tout le projet
  • Build — compilation complète pour s’assurer que tout se résout

Déploiement

  • Déploiement automatique vers Railway, uniquement depuis la branche main
  • Protégé par le secret RAILWAY_TOKEN
  • Ne s’exécute que si les tests et le build passent

Si un test échoue ou si TypeScript détecte une erreur de types, le déploiement est bloqué automatiquement. Aucune chance d’envoyer du code cassé en production.

Tests automatisés avec Pest

La première suite de tests automatisés de WITHMIA, qui couvre les briques les plus critiques du métier :

Tests unitaires

  • CurrencyService — détection de la devise par pays, routage de passerelle (Flow pour le CLP, dLocal pour le reste), tarification locale correcte
  • BillingConfig — structure des formules (Free, Pro, Business, Enterprise), tarif du dépassement, configuration de Flow et dLocal, validation de la remise annuelle
  • OverageService — prix par pack, calcul des coûts selon le nombre de messages dépassés

Tests de feature

  • Endpoints de l’API — health check, garde-fous d’authentification, throttling fonctionnel, gestion des 404
  • Modèles — création de User, Company et Subscription avec des factory patterns

Chaque test s’exécute sur une base PostgreSQL propre grâce à RefreshDatabase, ce qui garantit des essais indépendants et reproductibles.

Un système de parrainage complet

Le système de parrainage passe d’un simple squelette à une implémentation complète :

Comment ça marche ?

  1. Votre entreprise génère un code — au format WM-XXXXXX (6 caractères alphanumériques)
  2. Vous partagez le code avec une autre entreprise
  3. L’autre entreprise l’applique au moment de s’abonner et obtient 10 % de remise pendant 3 mois
  4. Vous cumulez les parrainages — le système compte le nombre d’utilisations de votre code

Règles de gestion

  • Vous ne pouvez pas utiliser votre propre code (prévention de l’auto-parrainage)
  • Un code ne peut pas être appliqué deux fois par la même entreprise
  • La remise est paramétrable : pourcentage, nombre de mois, nombre maximal d’utilisations
  • Les codes peuvent avoir une date d’expiration
  • Seules les entreprises avec une formule active peuvent générer des codes

Nouveaux endpoints

  • GET /api/subscription/referral-code — récupérer ou générer le code de votre entreprise
  • POST /api/subscription/apply-referral — appliquer un code de parrainage (il existait déjà en squelette, il est désormais fonctionnel)

Facturation PDF soignée

Nouveau système de génération de factures aux couleurs de WITHMIA :

Modèle Invoice

  • Numérotation automatique — format WM-YYYY-XXXXX (ex. : WM-2026-00001)
  • Calcul de la TVA — 19 % automatiquement pour les paiements en CLP
  • Lignes détaillées — libellé, formule, cycle de facturation
  • Relations — liée à Company et Subscription

Génération automatique des factures

Les factures sont créées automatiquement dès qu’un paiement est confirmé, sans intervention de l’utilisateur :

  • Flow.cl — à la confirmation du paiement dans le webhook (status === 2)
  • dLocal — à la confirmation du paiement dans le webhook dLocal
  • Flow Subscription — à chaque renouvellement récurrent (en indiquant s’il s’agit de la première facture ou d’un renouvellement)

Chaque facture consigne le moyen de paiement, la référence de transaction, le montant, la devise et le détail des taxes.

Téléchargement du PDF

Le service InvoiceService génère un document HTML soigné, avec :

  • Logo et identité WITHMIA, rehaussés d’accents dorés (#FFD700)
  • Coordonnées de l’entreprise émettrice et de la destinataire
  • Un tableau des lignes avec le détail du sous-total, de la TVA et du total
  • Les informations de paiement : moyen, référence, date
  • Un design responsive optimisé pour l’impression

Si dompdf est installé, un vrai PDF est généré. Sinon, une version HTML prête à imprimer est servie, avec window.print() intégré.

Nouveaux endpoints

  • GET /api/subscription/invoices — liste des 50 dernières factures de l’entreprise
  • GET /api/subscription/invoices/{id}/pdf — télécharger la facture en PDF/HTML

Récapitulatif technique

ChangementFichiersImpact
Rate limitingAppServiceProvider + routes/api.php6 limiteurs, 18+ groupes de routes
CI/CD.github/workflows/ci.yml + .env.ci3 jobs (backend, frontend, déploiement)
Tests5 fichiers dans tests/23+ cas de test (unit + feature)
Parrainage2 modèles + migration + contrôleurSystème complet
FacturesModèle Invoice + InvoiceService + migrationCréation automatique dans les webhooks

La suite

L’infrastructure qualité étant assurée, la feuille de route du T2 2026 se concentre sur des fonctionnalités à fort impact :

  • PWA / application mobile — la priorité pour une Amérique latine mobile-first
  • Enquêtes CSAT — une fonctionnalité que tous les concurrents proposent
  • AI resolution analytics — les indicateurs de résolution par l’IA
  • Broadcasting WhatsApp — campagnes de masse

WITHMIA v1.0.5 n’est pas la mise à jour la plus tape-à-l’œil, mais c’est celle qui permet de dormir tranquille. Code testé, API protégée, factures automatiques.

Ouvrir WITHMIA → Essayez gratuitement sur app.withmia.com →

Étiquettes

mise à jour v1.0.5 produit sécurité tests CI/CD parrainage facturation PDF

Partager

Commentaires

Restez respectueux. Votre e-mail ne sera pas publié.

Articles liés

Envie de mettre ça en place dans votre entreprise ?

Essayez gratuitement pendant 14 jours. Sans carte bancaire.

Essayer 14 jours gratuitement