Autenticación
El cliente toma o una clave de API o el par de token de la sesión del navegador. Pasar ambos es un
SignozConfigError.
Clave de API (recomendada)
In SigNoz, abierto Ajustes → Cuentas de Servicio, crear una cuenta con el papel que necesita y generar una clave.
const signoz = createSignozClient({ baseUrl, apiKey: process.env.SIGNOZ_API_KEY! });
La llave va en SigNoz-Api-Key header (exportado como API_KEY_HEADER). No expira con una sesión y no compite con su
navegador para uno.
Sesión del navegador
Con SigNoz abierto y conectado, abierto DevTools → Aplicación → Almacenamiento local → el SigNoz URL y copia
AUTH_TOKEN y REFRESH_AUTH_TOKEN.
import { createSignozClient, FileTokenStore } from "@hoyasumii/signoz";
const signoz = createSignozClient({
baseUrl,
authToken: process.env.SIGNOZ_AUTH_TOKEN!,
refreshAuthToken: process.env.SIGNOZ_REFRESH_AUTH_TOKEN!,
tokenStore: new FileTokenStore(".signoz-session.json"),
});
- Cada llamada envía
Authorization: Bearer <authToken>. - Un 401 dispara
POST /api/v2/sessions/rotatey la llamada se retira una vez. El rotato es un solo vuelo: llamadas simultáneas que consiguen un 401 compartir uno girar. - Un giro rechazado
SignozSessionExpiredError: copiar fichas frescas del navegador. - La sesión expira después de 7 días ociosos o 30 días en total.
- Con la
opaquetokenizer, el SDK y el navegador compiten para la misma sesión. Preferir la clave de API, o iniciar sesión sólo para esto en una ventana privada.
Mantener el par girado
Un par rotado vive en memoria a menos que lo guardes:
onTokensRotated(tokens)es llamado a cada rotación, para persistir el par usted mismo.tokenStorepersiste para ti.FileTokenStoreescribe un archivo JSON con el modo 0600 (en Windows el ACL de la carpeta lo protege), a través de un renombre que se repite mientras otro proceso mantiene el archivo.
La tienda recuerda que pare el salvado descende de (tokenPairHash). En el próximo comienzo, el par salvado gana
mientras el par dado no se cambia, ya que es más nuevo; una vez que se pega un nuevo par, el nuevo par gana.
createSignozClientFromEnv() establece esto por su cuenta: mantiene el par en SIGNOZ_TOKEN_FILE o
.signoz-session.json (G)tokenFile: false apaga eso).
signoz.auth dice qué modo utiliza el cliente ("api_key" o "session"), y signoz.tokens da el par actual.