# Límites y cuotas

> Horas de navegador y salida al mes, concurrencia, duración de sesión, inactividad, vida de los tokens, retención y reglas de salida de OpenWAF Browsers en la beta.

Durante la beta pública OpenWAF Browsers es gratis dentro de esta cuota. Son los valores por defecto de cada organización. Un operador puede ajustarlos para la tuya: escribe a support@openwaf.dev.

## Cuota por organización

| Concepto | Por defecto | Cómo se cuenta |
|---|---|---|
| Horas de navegador | 20 al mes | Tiempo de cada navegador desde que Chrome está listo hasta que se para, inactividad incluida; el arranque no cuenta |
| Salida | 5 GB al mes | Bytes enviados más bytes recibidos por el proxy de salida (1 GB = 10⁹ bytes) |
| Navegadores a la vez | 2 por clave | Navegadores en marcha al mismo tiempo con una clave |
| Duración de sesión | 60 minutos | Por navegador; después se para |
| Claves | 5 | Claves de la organización |

`GET /v1/orgs/{org}/browsers` devuelve la cuota en `quota` y lo que va de mes en `usage`. El panel enseña las dos cosas en **Navegadores → Resumen**.

## El ciclo mensual

1. **El mes es un mes natural en UTC.** Empieza el día 1 a las 00:00 UTC. `period.start` y `period.end` dan los límites exactos.
2. **Al 80 %** de las horas de navegador o de la salida, `warning` pasa a `true` y el panel muestra un aviso. No se para nada.
3. **Al 100 %** de cualquiera de las dos, todas las claves de la organización se desactivan y sus navegadores en marcha se paran. `status` pasa a `quota_exceeded` y las claves muestran `disabled: true`. Los navegadores nuevos se rechazan con `401`.
4. **El día 1 del mes siguiente a las 00:00 UTC** las claves se reactivan solas. No tienes que hacer nada.


El uso se recoge cada minuto, así que las cifras del panel y de la API van con hasta unos dos minutos de retraso. Por lo mismo, los navegadores pueden seguir en marcha hasta unos dos minutos después de llegar al 100 % antes de pararse.

## Vida de un navegador

| Concepto | Valor |
|---|---|
| Inactividad | 120 segundos sin ningún cliente CDP ni de vista en directo, salvo que fijes `timeout` o `keepAlive` |
| Duración máxima de sesión | 60 minutos |
| Tokens de CDP y de vista en directo | 1 hora; `GET /v1/browsers/{id}` devuelve otros nuevos |
| Archivos de sesión (grabaciones, descargas) | Se guardan 7 días después de que el navegador se pare |
| Perfiles | Un navegador cada vez; borrar uno en uso responde `409` |

Cerrar la conexión CDP no para el navegador. Páralo con `PATCH /v1/browsers/{id}` `{"action": "stop"}` para que no sume tiempo inactivo.

## Capacidad compartida

En la beta, todas las organizaciones comparten los nodos de navegadores: hasta 5 navegadores a la vez en todo el servicio. Cuando están todos ocupados, `POST /v1/browsers` responde `429` con `{"code": "capacity_busy"}` y `Retry-After: 30`. Espera y reintenta: no cuenta para tu cuota. `capacity` en el resumen enseña el estado actual (`max_sessions`, `running`, `busy`).

Es distinto de tu propio límite de 2 navegadores por clave, que responde `429` con `{"code": "key_concurrency"}`.

## Reglas de salida

Cada petición del navegador pasa por el proxy de salida:

- **Solo los puertos 80 y 443.**
- **Denegado siempre**, con cualquier ajuste: direcciones privadas (RFC 1918), loopback, link-local (incluida la dirección de metadatos de la nube `169.254.169.254`), CGNAT (`100.64.0.0/10`), multicast, rangos de documentación y otros de uso especial, y sus equivalentes IPv6. El proxy resuelve los nombres por su cuenta; si alguna dirección de un nombre está denegada, el nombre entero lo está.
- **El modo abierto** (por defecto) permite cualquier otro host público. **El modo lista de permitidos** solo permite los hosts que lista un administrador: `example.com` para ese host, `*.example.com` para sus subdominios, hasta 100 entradas.
- **Cada petición queda registrada**: hora, clave, navegador, método, host, puerto, decisión, motivo, estado, bytes y duración. Consúltalo con `GET /v1/browsers/{id}/egress`, el [registro de salida de la organización](https://developers.openwaf.dev/es/browsers/reference/#egress) o **Navegadores → Registro de salida**.

El navegador no llega a tu máquina ni a tu red privada. Para probar un sitio que no es público, publícalo antes en un nombre de host público.

## Ubicación

Navegadores, grabaciones, descargas y registros se alojan en la UE, en Alemania.
