Aller au contenu principal

Journal des modifications

Modifications notables de l’embed SDK et de la platform API. Le contrat wire est versionné sous /embed/v1/* et /inference-api/b2b/v1/* ; les modifications incompatibles sont publiées dans une nouvelle version majeure à côté de l’ancienne (Versionnement du CDN).

2026-09

  • SSOT de la politique de capacités. Produit → scope et niveau → API-capabilities résident désormais une seule fois dans @kaleidr/shared-types (B2B_PRODUCT_REQUIRED_SCOPE, B2B_TIER_API_CAPABILITIES) avec des tests de parité. Utilisé par shared-api (mint / rotate / PATCH clamp), inference-api (session exchange, runtime credentials) et la documentation.
  • Capacité effective = clé stockée × niveau actuel. Le session exchange et chaque chemin de runtime credential recalculent l’admission à partir du niveau actuel de l’organisation — une clé Pro rétrogradée vers Free ne crée désormais plus que des sessions tile à partir de ce moment. Subcode distinct : tier_capability_not_allowed (la capacité existait mais le niveau ne l’autorise plus) contre insufficient_scope (elle n’a jamais existé).
  • Les changements de plan de facturation invalident le cache apikey:*. Les webhooks d’abonnement invalident les snapshots par clé afin que les downgrades/upgrades atteignent immédiatement le runtime. Puisque les sessions relisent la politique active de la clé à chaque requête, un downgrade affecte désormais aussi les sessions déjà créées — il n’est plus limité par le TTL de session. Un upgrade nécessite toujours une nouvelle session, car une session ne peut que restreindre les droits de son parent.
  • Élargissement PATCH du niveau Free rejeté. Modifier une clé Free pour élargir scopes / allowed_products au-delà de ce que le niveau autorise renvoie 403 tier_capability_not_allowed, y compris le cas empty-products = all.
  • Événement SSE grounding supprimé. Grounding continue d’influencer la réponse ; il n’ajoute simplement plus de frame sur le wire. Les clients qui l’écoutaient ne le recevront plus.

2026-08

  • L’accès aux fonds de carte est autorisé par clé. L’utilisation directe par des tiers de tile.kaleidr.com est limitée ; les embeds <kaleidr-map> et les cartes hébergées par Kaleidr ne sont pas affectés. Les sessions de fond de carte débitent l’allocation mensuelle partagée de chargements de cartes de l’organisation (quota).
  • Session exchange + refresh. Les clés publishable sont échangées contre des sessions de courte durée liées à l’origine (kld_sess_{env}_…, 15-min TTL) ; le SDK gère le renouvellement de session.
  • Place bridge / iframe seam. La seam postMessage pour les événements Place inter-frames entre les produits iframe et la page parente a été standardisée.
  • Fond de carte par défaut de l’organisation. /sdk/sessions renvoie le basemap_style_id par défaut enregistré de l’organisation lorsque l’embed n’en indique aucun ; le SDK l’applique avant de revenir à kaleidr-morning.
  • Refus des server keys dans le navigateur. Le SDK refuse kld_sk_… au montage (les server keys sont réservées au serveur).
  • Préparation CDN + API dev / prod. Les deux environnements sont servis depuis des endpoints à version stable ; viewerBase a été séparé de la base du loader et tileBase séparé pour le tile CDN de l’editor.
  • Couleurs de route Seam v2. L’événement route transporte color / label / alternatives / comparison dans le contrat stable.

v1

  • Loader kaleidr.js + élément <kaleidr-map> — une façade, quatre produits (chat / viewer / editor / tile), deux modes d’intégration.
  • Clés navigateur publishable (kld_pk_) et clés server (kld_sk_) avec scopes ai | maps | design | vendor ; les clés publishable sont échangées contre des sessions de courte durée liées à l’origine. Les anciennes clés kld_live_ continuent de fonctionner.
  • Familles de routes /inference-api/b2b/v1/chat/* (SSE) + /design/*.

Cette page sera complétée au fil des versions.