Aller au contenu

Changelog

L’API Pomelo suit une fenetre de depreciation minimale de 90 jours pour les changements majeurs :

  1. Les changements sont annonces dans ce changelog et dans la documentation
  2. Les paramètres de requête dépréciés retournent les headers Deprecation: true et Sunset
  3. Les champs de réponse dépréciés sont marqués dans l’OpenAPI et la documentation même quand des headers par champ ne sont pas pratiques
  4. Après la date sunset, les paramètres de requête dépréciés sont rejetés avec 422 INVALID_PARAMS
  • Publication d’un nouveau Guide de migration consommateurs pour les integrations snippet et API existantes
  • Clarification : les depreciations de l’API publique concernent /v1/*, tandis que le contrat interne du dashboard /metrics/* suit son propre contrat partage
  • Clarification : l’API publique /v1/* exige maintenant from / to, tandis que /v1/me.plan_id et /v1/me.retention_days restent les seuls miroirs de compatibilite encore actifs
  • /v1/reports/acquisition sert maintenant un slice acquisition-lite strict-safe avec canaux, referrers host-only et landing pages
  • /v1/reports/actions sert maintenant des actions simples strict-safe (ui.click, outbound.click, file.download, form.submit) tout en gardant les familles avancées sous garde profile-aware
  • /v1/reports/overview restaure un aperçu acquisition-lite en Strict
  • Les routes mixtes restent en 200 en Strict ; utilisez availability.readModel pour le socle strict-safe, puis availability.sections pour les slices d’attribution ou d’actions avancees verrouillees
  • UTM, campagnes, goals, tenant drill-down, raw/session logs et region/city restent hors du socle Strict par defaut
  • /v1/me retourne encore plan_id et retention_days, mais ces champs sont désormais des miroirs de compatibilité explicitement dépréciés
  • Les données produit runtime canoniques restent sous product
  • plan_id — utilisez product.runtime_plan_id
  • retention_days — utilisez product.product_retention.api_retention_days
  • Aucune suppression avant 2026-07-03T00:00:00Z
  • UA client supprimé : le user agent n’est plus envoyé depuis le navigateur ; la classification appareil/navigateur/OS est désormais côté serveur uniquement
  • ID de session durci : utilise browser_family (dérivé côté serveur) au lieu du UA brut
  • Sanitisation PII automatique sur tous les champs capturés :
    • el_id, el_scope, form_id : charset strict, max 100 car., PII rejetées
    • el_label : max 80 car., PII rejetées
    • page_title : max 200 car., PII rejetées
    • Messages d’erreur : PII remplacées par [redacted], query strings retirées, max 200 car.
  • Correction du bug lastIndex de la regex globale dans sanitizeText()
  • data-analytics-label pour les labels de clic explicites
  • Toggle data-autocapture-forms piloté par la configuration serveur du site ; pas un défaut du socle Strict
  • Toggle data-autocapture-errors piloté par la configuration serveur du site ; pas un défaut du socle Strict
  • Mode data-autocapture-labels-only pour le tracking explicite des clics UI
  • el_label, el_label_src et el_role sur les événements ui.click
  • Cascade de détection de labels : data-analytics-label > aria-label > aria-labelledby > title

    texte > value > alt

  • GET /v1/usage/history — historique d’usage mensuel (jusqu’a 24 mois)
  • Headers de reponse X-RateLimit-* sur tous les endpoints
  • Enveloppe d’erreur stricte avec codes d’erreur stables
  • Metadonnees de metering dans les reponses metrics (meta.units_charged, meta.billable_overage, meta.usage)
  • from / to standardises comme parametres de date canoniques
  • start / end conserves temporairement pour la retrocompatibilite (deprecies)
  • Autorisation de token renforcee (scopes + allowlist de sites + isolation par org)
  • Enforcement du hard cap rendu atomique en concurrence
  • Forwarding du header Authorization corrige sur /v1* via CloudFront
  • Hashage de token supporte maintenant un pepper depuis SSM Parameter Store
  • Construction des requetes SQL renforcee avec enums stricts et echappement de litteraux
  • Parametres start / end — utilisez from / to a la place