Inicio rápido
-
Obtené una clave de proyecto
Sección titulada «Obtené una clave de proyecto»La clave pública de un proyecto tiene la forma
pk_live_…. Es pública por diseño — va directo en tu HTML, de la misma manera que un Sentry DSN. Solo indica a qué proyecto pertenece una grabación; no puede leer nada de vuelta. -
Agregá el script
Sección titulada «Agregá el script»Existen dos bundles. Elegí uno:
<!-- network (con bodies), console, clicks, navigation — 6 KB gzip --><script src="https://dbuger.dnh.ar/sdk/espejo.js" data-key="pk_live_..."></script><!-- todo lo anterior + DOM replay via rrweb — 86 KB gzip --><script src="https://dbuger.dnh.ar/sdk/espejo.dom.js" data-key="pk_live_..."></script>Son dos archivos separados, no uno detrás de un flag: un IIFE no puede dividirse en chunks, así que incluir rrweb “por las dudas” le costaría a todos 80 KB, incluyendo a quien solo quiere el log de red.
Por defecto no se sube nada. El script mantiene un ring buffer en memoria con capacidad limitada y solo lo envía cuando llamás a
report(). Agregádata-mode="always"para subir cada sesión en cambio — esa es la diferencia entre algo que podés dejar corriendo en producción y algo que quema tu bucket en una semana. -
Disparé una grabación
Sección titulada «Disparé una grabación»La instancia iniciada automáticamente es
window.espejo:const url = await espejo.report("Can't save the weighing");// → the URL of the uploaded session, or null if nothing was recordingLa grabación de pantalla necesita un gesto del usuario, así que llamala desde un click handler:
button.addEventListener("click", async () => {await espejo.startVideo({ microphone: true });// ... user reproduces the bug ...await espejo.stopVideo();await espejo.report("Recorded the bug live");});Un botón flotante de “reportar un problema” se monta automáticamente a menos que pases
data-button="off"(obutton: 'off'al construirEspejovos mismo). -
Mirá qué se almacenó
Sección titulada «Mirá qué se almacenó»Una grabación es un directorio en el bucket:
espejo/<projectId>/<yyyy-mm>/<sessionId>/manifest.json what this session is and what objects compose itevents.json summary + network + console + interactions + navigationdom.jsonl.gz DOM replay events (dom mode)video.webm (video mode)La ruta del objeto siempre la construye el servidor — el browser nunca propone una clave, o podría sobreescribir la sesión de otro.
Recuperala a través de la console API:
Ventana de terminal curl https://dbuger.dnh.ar/v1/sessions/<id> \-H "Authorization: Bearer <jwt>"
Qué leer a continuación
Sección titulada «Qué leer a continuación»- Conceptos centrales — el bundle, la redacción, el almacenamiento y el modelo tenant → proyecto → clave.
- Console API — la superficie HTTP completa: proyectos, claves, sesiones.
- Servidor MCP — dejá que Claude Code o claude.ai lean tus grabaciones directamente.