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 :
| Canal | Objectif | Délai de réponse |
|---|---|---|
| 💬 Support | Problèmes techniques, questions d'utilisation | 24h |
| Facturation | Abonnements, factures, paiements | 48h |
| 🔒 Confidentialité | RGPD, demandes de données (Art. 15–22) | 72h |
| ⚖️ Juridique | Demandes juridiques, signature DPA | 5 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
Contactdans 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 parlogger.*dans les contrôleurs, services, modèles et configuration - Les requêtes de sonde de vivacité Kubernetes
/healthsont 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ètre | Valeur |
|---|---|
| Taux de requêtes | 50 req/s par IP |
| Connexions simultanées | 30 par IP |
| Rafale | 5× (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,workspaceIdcomme é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 :
| Alerte | Condition | Sévérité |
|---|---|---|
| Taux d'erreur élevé | >10 erreurs/5min | critique |
| Force brute détectée | >20 connexions échouées/5min | critique |
| Pic de limitation de débit | >50 erreurs 429/5min | avertissement |
| MongoDB injoignable | pas de heartbeat pendant 5min | critique |
| Sauvegarde manquante | pas de journal de sauvegarde en 25h | avertissement |
Infrastructure : Surveillance des sauvegardes MongoDB
Alerte Sauvegarde manquante + Interface admin de sauvegarde
Alerte Grafana :
Sauvegarde manquantese 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 Forbiddensur/reports/invoicescorrigé - Archivage d'espace de travail : Notice RGPD ajoutée au dialogue ArchiveWorkspaceDialog
Résumé
| Zone | Modification |
|---|---|
| 🌐 Landing | Page Contact EN/HU/DE, lien pied de page, e-mails protégés anti-spam |
| 🔒 Backend | Transport journal d'audit RGPD (365j, Art. 5(2)) |
| 🪵 Backend | Journalisation JSON structurée, RequestLogger, filtre /health |
| 🛡️ Infra | Limitation de débit Ingress : 50 rps / 30 conn / rafale ×5 |
| 📡 Infra | DaemonSet Promtail → Grafana Cloud Loki (3 jobs) |
| Infra | 5 règles d'alerte Grafana (taux d'erreur, force brute, rate-limit, MongoDB, sauvegarde) |
| 🗄️ Infra | Surveillance des sauvegardes MongoDB + Interface admin de sauvegarde (arborescence, isStale) |
| 🐛 Correctif | Relais SMTP, ingestion journaux de sauvegarde, admin 403, archive espace de travail RGPD |