Zum Hauptinhalt springen

CDN-Versionierung

Jedes Embed-Asset wird über einen Major-Alias-Pfad bereitgestellt:

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

Du pinnst kaleidr.js; anschließend fordert es nacheinander v1 jedes Produkt-Bundles an.

Was v1 tatsächlich ist

  • v1 ist ein Major-Contract-Alias, kein Build-Pin. Unter /embed/v1/* gibt es keine Patch- oder Content-Hash-Pfade. Die Datei, die diese URL ausliefert, ist der aktuelle v1-Build und wird direkt an dieser Stelle veröffentlicht; es gibt kein /embed/v1.2.3/…, auf das du pinnen könntest.
  • Abwärtskompatible Korrekturen werden unter /embed/v1/ ausgeliefert — du erhältst sie automatisch. Dazu gehören auch Verhaltenserweiterungen (neue stabile SSE-Events, neue Handle-Methoden) — die Kompatibilitätsregel lautet, dass Clients unbekannte Wire-Erweiterungen ignorieren müssen und nicht unterstützte Handle-Methoden als no-op mit Warnung ausgeführt werden.
  • Eine brechende Wire-/postMessage-Änderung wird als neue Major-Version neben v1 ausgeliefert: /embed/v2/kaleidr.js (+ /embed/v2/<product>.js). Deine gepinnte v1- URL funktioniert unverändert weiter; migriere nach deinem eigenen Zeitplan, indem du den Pfad erhöhst.

Der SSE-Wire-Contract wird auf dieselbe Weise unter /inference-api/b2b/v1/* versioniert — ein v2 erscheint nur bei einer brechenden Stream- Änderung.

Caching

Bundles werden mit Cache-Control: public, max-age=300 ausgeliefert und jede Veröffentlichung invalidiert die CloudFront-Distribution — dadurch beträgt die praktische Verteilung ca. 1–5 Minuten am Edge, plus bis zu weitere 300 Sekunden für einen Browser, der die vorherige Datei bereits gecacht hat. Das ist schnell für Korrekturen; aus demselben Grund solltest du diese Dateien nicht fingerprinten oder langfristig lokal cachen, ohne einen Plan zu haben, wie du sie ersetzen wirst.

Self-Hosting

Nur kaleidr.js auf deinen eigenen Origin zu zeigen isoliert dich nicht vom Kaleidr-CDN — der Loader lädt die Lazy-Bundles (chat.js, editor.js, viewer.js, tile.js) weiterhin beim Mounten von cdn.kaleidr.com. Für vollständiges Self-Hosting musst du die Loader- Base überschreiben und alle fünf Dateien unter {origin}/embed/v1/ spiegeln:

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

Wenn dein Embed außerdem mit der Platform API oder einem privaten Tile-CDN kommuniziert, überschreibe beide separat — siehe api-base, viewer-base und tile-base.