> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-1d264819.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Documentación de la API HTTP de ClickHouse Keeper y del dashboard web integrado

# API HTTP y dashboard de Keeper

ClickHouse Keeper proporciona una API HTTP y un dashboard web integrado para monitorización, comprobaciones de estado y gestión del almacenamiento.
Esta interfaz permite a los operadores inspeccionar el estado del cluster, ejecutar comandos y gestionar el almacenamiento de Keeper desde un navegador web o mediante clientes HTTP.

<div id="configuration">
  ## Configuración
</div>

Para habilitar la API HTTP, añade la sección `http_control` a la configuración de `keeper_server`:

```xml theme={null}
<keeper_server>
    <!-- Otra configuración de keeper_server -->

    <http_control>
        <port>9182</port>
        <!-- <secure_port>9443</secure_port> -->
    </http_control>
</keeper_server>
```

<div id="configuration-options">
  ### Opciones de configuración
</div>

| Ajuste                                    | Predeterminado | Descripción                                                                |
| ----------------------------------------- | -------------- | -------------------------------------------------------------------------- |
| `http_control.port`                       | -              | Puerto HTTP para el dashboard y la API                                     |
| `http_control.secure_port`                | -              | Puerto HTTPS (requiere configuración de SSL)                               |
| `http_control.readiness.endpoint`         | `/ready`       | Ruta personalizada para la sonda de disponibilidad                         |
| `http_control.storage.session_timeout_ms` | `30000`        | Tiempo de espera de la sesión para operaciones de la API de almacenamiento |

<div id="endpoints">
  ## Endpoints
</div>

<div id="dashboard">
  ### Dashboard
</div>

* **Ruta**: `/dashboard`
* **Método**: GET
* **Descripción**: Sirve un dashboard web integrado para monitorizar y gestionar Keeper

El dashboard proporciona:

* Visualización en tiempo real del estado del cluster
* Monitorización de nodos (rol, latencia, conexiones)
* Navegador de almacenamiento
* Interfaz para ejecutar comandos

<div id="readiness-probe">
  ### Sonda de disponibilidad
</div>

* **Ruta**: `/ready` (configurable)
* **Método**: GET
* **Descripción**: endpoint de comprobación de estado

Respuesta exitosa (HTTP 200):

```json theme={null}
{
  "status": "ok",
  "details": {
    "role": "leader",
    "hasLeader": true
  }
}
```

<div id="commands-api">
  ### API de comandos
</div>

* **Ruta**: `/api/v1/commands/{command}`
* **Métodos**: GET, POST
* **Descripción**: Ejecuta comandos Four-Letter Word o comandos de la CLI de ClickHouse Keeper Client

Parámetros de consulta:

* `command` - El comando que se va a ejecutar
* `cwd` - Directorio de trabajo actual para comandos basados en rutas (predeterminado: `/`)

Ejemplos:

```bash theme={null}
# Comando de cuatro letras
curl http://localhost:9182/api/v1/commands/stat

# Comando CLI de ZooKeeper
curl "http://localhost:9182/api/v1/commands/ls?command=ls%20'/'&cwd=/"
```

<div id="storage-api">
  ### API de almacenamiento
</div>

* **Ruta base**: `/api/v1/storage`
* **Descripción**: API REST para operaciones de almacenamiento en Keeper

La API de almacenamiento sigue las convenciones REST, donde los métodos HTTP indican el tipo de operación:

| Operación  | Ruta                                   | Método | Código de estado | Descripción                   |
| ---------- | -------------------------------------- | ------ | ---------------- | ----------------------------- |
| Obtener    | `/api/v1/storage/{path}`               | GET    | 200              | Obtener datos del nodo        |
| Listar     | `/api/v1/storage/{path}?children=true` | GET    | 200              | Listar nodos hijos            |
| Existe     | `/api/v1/storage/{path}`               | HEAD   | 200              | Comprobar si el nodo existe   |
| Crear      | `/api/v1/storage/{path}`               | POST   | 201              | Crear un nodo nuevo           |
| Actualizar | `/api/v1/storage/{path}?version={v}`   | PUT    | 200              | Actualizar los datos del nodo |
| Eliminar   | `/api/v1/storage/{path}?version={v}`   | DELETE | 204              | Eliminar el nodo              |
