Aller au contenu principal

Versionnement du CDN

Chaque ressource d’embed est servie depuis un chemin d’alias majeur :

https://cdn.kaleidr.com/embed/v1/kaleidr.js ← the loader (façade)
https://cdn.kaleidr.com/embed/v1/chat.js ← chat bundle
https://cdn.kaleidr.com/embed/v1/viewer.js ← viewer loader
https://cdn.kaleidr.com/embed/v1/editor.js ← editor bundle
https://cdn.kaleidr.com/embed/v1/tile.js ← tile loader

Vous épinglez kaleidr.js ; il demande ensuite la version v1 de chaque bundle produit.

Ce qu’est réellement v1

  • v1 est un alias de contrat majeur, pas un build épinglé. Aucun chemin de patch ni de content-hash n’existe sous /embed/v1/*. Le fichier servi par cette URL est le build v1 actuel, publié sur place ; il n’existe pas de /embed/v1.2.3/… que vous puissiez épingler.
  • Les correctifs rétrocompatibles sont publiés sous /embed/v1/ — vous les recevez automatiquement. Cela inclut les ajouts de comportement (nouveaux événements SSE stables, nouvelles méthodes de handle) — la règle de compatibilité veut que les clients ignorent les ajouts wire inconnus et que les méthodes de handle non prises en charge soient des no-op avec avertissement.
  • Une modification wire/postMessage incompatible est publiée dans une nouvelle version majeure à côté de v1 : /embed/v2/kaleidr.js (+ /embed/v2/<product>.js). Votre URL v1 épinglée continue de fonctionner sans changement ; migrez selon votre propre calendrier en modifiant le chemin.

Le contrat SSE wire est versionné de la même manière sous /inference-api/b2b/v1/* — un v2 n’apparaît que pour une modification incompatible du stream.

Mise en cache

Les bundles sont servis avec Cache-Control: public, max-age=300 et chaque publication invalide la distribution CloudFront — la propagation réelle est donc de ~1 à 5 minutes en périphérie, plus jusqu’à 300 s supplémentaires pour un navigateur ayant déjà mis en cache le fichier précédent. C’est rapide pour les correctifs ; c’est aussi pourquoi vous ne devez pas fingerprint ni conserver ces fichiers longtemps en cache localement sans plan pour les remplacer.

Auto-hébergement

Pointer uniquement kaleidr.js vers votre propre origine ne vous isole pas du CDN de Kaleidr — le loader continue de récupérer les bundles lazy (chat.js, editor.js, viewer.js, tile.js) depuis cdn.kaleidr.com au moment du montage. Pour un auto-hébergement complet, remplacez la base du loader et répliquez les cinq fichiers dans {origin}/embed/v1/ :

<script>window.__KALEIDR_EMBED_BASE__ = 'https://cdn.example.com';</script>
<script src="https://cdn.example.com/embed/v1/kaleidr.js"></script>

Si votre embed communique également avec la platform API ou un tile CDN privé, remplacez chacun indépendamment — consultez api-base, viewer-base et tile-base.