Aller au contenu principal

Notes de version — 19 mars 2026

Cette version ajoute une page Contact en trois langues, complète l'infrastructure d'agrégation centralisée des journaux avec Grafana Cloud Loki, introduit la surveillance des sauvegardes MongoDB, la limitation de débit Ingress, la journalisation JSON structurée et un transport de journal d'audit RGPD.


Page Contact

Page Contact — EN / HU / DE

CADENSA dispose désormais d'une page Contact dédiée disponible sur cadensa.io/contact dans les trois langues prises en charge (anglais, hongrois, allemand).

Ce qui se trouve sur la page :

CanalObjectifDélai de réponse
💬 SupportProblèmes techniques, questions d'utilisation24h
FacturationAbonnements, factures, paiements48h
🔒 ConfidentialitéRGPD, demandes de données (Art. 15–22)72h
⚖️ JuridiqueDemandes juridiques, signature DPA5 jours ouvrables

Informations sur l'entreprise :

  • Axeri Labs Bt. — 2120 Dunakeszi, Brassói utca 7.
  • Enregistrement : 13-06-060656 · TVA : 22531300-2-13 · TVA UE : HU22531300

Détails techniques :

  • Les adresses e-mail sont rendues en JavaScript et obfusquées en Unicode — pas présentes dans le HTML brut ni dans les fichiers i18n JSON (protection anti-spam)
  • Le lien Contact dans le pied de page mis à jour de Bientôt disponible vers la page en production

Backend : Transport du journal d'audit RGPD

Journal d'audit RGPD — Rétention de 365 jours (Art. 5(2))

Tous les événements pertinents au RGPD sont maintenant persistés dans une base de données de journal d'audit dédiée avec une politique de rétention de 365 jours.

Événements enregistrés :

  • Inscription des utilisateurs, connexion, changements de mot de passe
  • Accès aux données personnelles et exports (Art. 15)
  • Demandes de suppression de données et d'annulation (Art. 17)
  • Mises à jour du consentement
  • Actions administrateur sur les comptes utilisateurs

Base de conformité : RGPD Art. 5(2) — obligation de responsabilité.

Niveau : Tous les plans (automatique, aucune action de l'utilisateur requise)


Backend : Journalisation JSON structurée

Format de journal JSON + Middleware RequestLogger

Toute sortie de journal backend est maintenant en JSON structuré (mode production), permettant des requêtes en texte intégral et structurées dans Grafana Loki.

Champs de journal dans chaque requête :

{
"timestamp": "2026-03-19T10:00:00.000Z",
"level": "info",
"method": "POST",
"path": "/api/time-entries",
"statusCode": 201,
"durationMs": 34,
"userId": "...",
"workspaceId": "...",
"ip": "x.x.x.x"
}

Modifications supplémentaires :

  • Tous les appels console.* remplacés par logger.* dans les contrôleurs, services, modèles et configuration
  • Les requêtes de sonde de vivacité Kubernetes /health sont filtrées silencieusement — non enregistrées (réduit le bruit)

Infrastructure : Limitation de débit Ingress

Limitation de débit au niveau IP sur tous les points de terminaison API

Le contrôleur Nginx Ingress applique maintenant des limites de débit au niveau IP sur toutes les routes /api/*.

Limites :

ParamètreValeur
Taux de requêtes50 req/s par IP
Connexions simultanées30 par IP
Rafale5× (250 req en rafale / 150 connexions en rafale)

Comportement :

  • Les requêtes dépassant la limite reçoivent 429 Too Many Requests
  • La fenêtre de rafale permet des pics de trafic courts sans rejet immédiat
  • Toutes les réponses 429 sont visibles dans Grafana (alerte Rate Limit Spike)

Infrastructure : Agrégation centralisée des journaux

Promtail → Grafana Cloud Loki (Phase 3 + 5)

Tous les journaux de pods Kubernetes sont maintenant agrégés vers Grafana Cloud Loki via un DaemonSet Promtail.

Vue d'ensemble du pipeline :

  • Job cadensa-pods : lit les journaux JSON → analyse level, message, path, method, statusCode, durationMs, userId, workspaceId comme étiquettes
  • Job cadensa-backup : lit les journaux de sauvegarde en texte brut (pas de dépouillement de l'horodatage CRI — heure d'ingestion Loki utilisée)
  • Job monitoring-pods : journaux auto de Promtail + Grafana Agent

5 règles d'alerte Grafana déployées :

AlerteConditionSévérité
Taux d'erreur élevé>10 erreurs/5mincritique
Force brute détectée>20 connexions échouées/5mincritique
Pic de limitation de débit>50 erreurs 429/5minavertissement
MongoDB injoignablepas de heartbeat pendant 5mincritique
Sauvegarde manquantepas de journal de sauvegarde en 25havertissement

Infrastructure : Surveillance des sauvegardes MongoDB

Alerte Sauvegarde manquante + Interface admin de sauvegarde

Alerte Grafana :

  • Sauvegarde manquante se déclenche quand aucun journal de succès de sauvegarde n'apparaît dans les 25 heures
  • La requête d'alerte cible directement les journaux de sauvegarde en texte brut (pas d'analyse JSON)
  • Se résout automatiquement quand la prochaine sauvegarde s'exécute

Panneau admin (/admin/backup) :

  • Navigateur en arborescence : type → date de snapshot → fichiers individuels
  • Indicateur isStale — avertissement visuel si le dernier snapshot a plus de 25h
  • Widget de surveillance sur le tableau de bord Admin montrant le statut de sauvegarde en un coup d'œil
  • Source de sauvegarde : Wasabi S3 (eu-central-2) — avis légaux mis à jour

Corrections de bogues

  • Relais SMTP : Adresse du relais interne corrigée vers smtp-relay.cadensa.svc.cluster.local:25 (sans auth, sans TLS)
  • Ingestion des journaux de sauvegarde : Étape d'analyse de l'horodatage CRI supprimée pour les journaux de sauvegarde — heure d'ingestion utilisée à la place, résolvant les erreurs de rejet Loki
  • Liste des utilisateurs admin : 403 Forbidden sur /reports/invoices corrigé
  • Archivage d'espace de travail : Notice RGPD ajoutée au dialogue ArchiveWorkspaceDialog

Résumé

ZoneModification
🌐 LandingPage Contact EN/HU/DE, lien pied de page, e-mails protégés anti-spam
🔒 BackendTransport journal d'audit RGPD (365j, Art. 5(2))
🪵 BackendJournalisation JSON structurée, RequestLogger, filtre /health
🛡️ InfraLimitation de débit Ingress : 50 rps / 30 conn / rafale ×5
📡 InfraDaemonSet Promtail → Grafana Cloud Loki (3 jobs)
Infra5 règles d'alerte Grafana (taux d'erreur, force brute, rate-limit, MongoDB, sauvegarde)
🗄️ InfraSurveillance des sauvegardes MongoDB + Interface admin de sauvegarde (arborescence, isStale)
🐛 CorrectifRelais SMTP, ingestion journaux de sauvegarde, admin 403, archive espace de travail RGPD