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é parshared-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) contreinsufficient_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_productsau-delà de ce que le niveau autorise renvoie 403tier_capability_not_allowed, y compris le cas empty-products = all. - Événement SSE
groundingsupprimé. 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.comest 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/sessionsrenvoie lebasemap_style_idpar 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 ;
viewerBasea été séparé de labasedu loader ettileBaseséparé pour le tile CDN de l’editor. - Couleurs de route Seam v2. L’événement route transporte
color/label/alternatives/comparisondans 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 scopesai | maps | design | vendor; les clés publishable sont échangées contre des sessions de courte durée liées à l’origine. Les anciennes cléskld_live_continuent de fonctionner. - Familles de routes
/inference-api/b2b/v1/chat/*(SSE) +/design/*.
Cette page sera complétée au fil des versions.