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
v1ist 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 gepinntev1- 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.