O que o SDK faz (e o que não faz)
@gu1/sdk-web é o canal navegador do SDK da Gu1: roda dentro do seu web app e captura o que o backend não consegue ver — sinais do dispositivo (canvas, WebGL, propriedades de navigator), integridade do ambiente e a jornada do usuário, incluindo tudo o que acontece antes do login. Ele compartilha o modelo de eventos com o SDK de React Native: os eventos que você já envia do seu backend continuam exatamente iguais, apenas carregam um sessionId adicional para que o motor da Gu1 cruze os dois mundos.
O SDK é fail-open por design: nunca bloqueia a página, nunca propaga erros (a única exceção é configuração inválida na inicialização) e não acessa dados do usuário.
1. Instalação
O SDK é distribuído por npm privado (escopo
@gu1, pacote restricted), então npm install retorna 404 sem acesso de leitura ao escopo. Solicite à Gu1 um token de leitura e configure um .npmrc no seu projeto, passando o token por variável de ambiente (nunca faça commit dele). O canal <script> (CDN) não precisa de token..npmrc no seu projeto:
<script> (build IIFE — expõe window.Gu1Sdk). Carregue a partir da CDN da Gu1 com a versão fixada e o hash SRI (cada release publica sua própria URL v<versão>):
Content Security Policy: se a página aplica CSP, permita
connect-src https://api.<tenant>.gu1.ai (o SDK envia eventos e lê /sdk/config) e — apenas para o canal <script> — script-src https://cdn.gu1.ai.2. Inicialização
Com bundler (ESM):<script> (IIFE), o SDK fica disponível em window.Gu1Sdk:
sessionId anônimo, coleta sinais do dispositivo (canvas, WebGL, navigator) e integridade do ambiente, e os envia em segundo plano. Nada mais é necessário na página para a captura de sinais.
3. O sessionId até o seu backend (1 header)
Para vincular os eventos do seu backend à sessão do dispositivo, adicione osessionId como header nas chamadas do web app ao seu próprio backend:
- Primeira requisição autenticada: envie à Gu1 um evento com o
sessionId+ oentityExternalIddo usuário. A Gu1 vincula retroativamente toda a sessão, incluindo o que aconteceu antes do login. - Eventos existentes: adicione o campo opcional
sessionId(camelCase) aos eventos que você já envia paraPOST /events/user— eventos sem ele continuam funcionando normalmente.
4. Transações (1 linha)
Nas transações que você envia à Gu1, osessionId viaja no metadata:
5. Verificação
- Carregue a página em sandbox → a sessão aparece no dashboard da Gu1 com os sinais do dispositivo.
- Faça login → a sessão fica vinculada ao usuário (binding retroativo).
- Execute uma transação de teste → a transação mostra o contexto da sessão na sua avaliação.
Resumo da integração
Novos sinais que a Gu1 ativar no futuro são habilitados por configuração remota — sem redeploys do web app, sem coordenação.