Pular para o conteúdo principal

Versionamento do CDN

Todo recurso de embed é servido a partir de um caminho de alias de versão principal:

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

Você fixa kaleidr.js; ele solicita, em seguida, o v1 de cada bundle de produto.

O que v1 realmente significa

  • v1 é um alias de contrato principal, não um build fixado. Não existem caminhos de patch nem content-hash em /embed/v1/*. O arquivo servido por essa URL é o build v1 atual, publicado no mesmo local; não existe /embed/v1.2.3/… que possa ser fixado.
  • Correções compatíveis com versões anteriores são publicadas em /embed/v1/ — você as recebe automaticamente. Isso inclui adições de comportamento (novos eventos SSE estáveis, novos métodos de handle) — a regra de compatibilidade é que os clientes devem ignorar adições wire desconhecidas e que métodos de handle não suportados sejam no-op com um aviso.
  • Uma alteração wire/postMessage incompatível é publicada como uma nova versão principal ao lado de v1: /embed/v2/kaleidr.js (+ /embed/v2/<product>.js). Sua URL v1 fixada continua funcionando sem alterações; migre no seu próprio ritmo alterando o caminho.

O contrato SSE wire é versionado da mesma forma em /inference-api/b2b/v1/* — um v2 só aparece para uma mudança incompatível do stream.

Cache

Os bundles são servidos com Cache-Control: public, max-age=300 e toda publicação invalida a distribuição do CloudFront — portanto, a propagação prática é de ~1–5 minutos na edge, mais até 300 s adicionais para um navegador que já tenha armazenado o arquivo anterior em cache. Isso é rápido para correções; é também por isso que você não deve aplicar fingerprint nem manter esses arquivos em cache local por longos períodos sem um plano para substituí-los.

Hospedagem própria

Apontar apenas kaleidr.js para sua própria origem não isola você do CDN da Kaleidr — o loader continua buscando os bundles lazy (chat.js, editor.js, viewer.js, tile.js) em cdn.kaleidr.com no momento da montagem. Para hospedar tudo por conta própria, substitua a base do loader e espelhe todos os cinco arquivos em {origin}/embed/v1/:

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

Se o seu embed também se comunica com a platform API ou com um tile CDN privado, substitua cada um independentemente — consulte api-base, viewer-base e tile-base.