La CLI dhal se incluye con @rokadhq/dhal y puede ejecutarse mediante npx dhal.
Comandos principales
npx dhal add
npx dhal init
npx dhal test-config
npx dhal migrate --check
npx dhal doctor
npx dhal doctor --fix --dry-run
npx dhal openapi inspect openapi.json
npx dhal openapi generate openapi.yaml
npx dhal readiness --production
npx dhal compat
npx dhal stability
npx dhal rules
npx dhal presets list
npx dhal replay fixtures.replay.json
npx dhal simulate fixtures.simulation.json
npx dhal report --output dhal.report.json
npx dhal release-check --target stable --require-buildIncorporación guiada del proyecto
npx dhal adddhal add detecta Express, Fastify, NestJS, Koa o Hono desde package.json, y npm, pnpm, Yarn o Bun desde el archivo de bloqueo. La ejecución predeterminada es de solo lectura: muestra un preset de framework, un dhal.json en modo de supervisión, un módulo de integración, el comando de instalación y las instrucciones de registro.
Después de revisarlo:
npx dhal add --writeOpciones principales:
--framework <nombre> Sobrescribe la detección
--config <ruta> Ruta de configuración
--integration <ruta> Ruta del módulo generado
--write Crea los archivos propuestos
--force Sobrescribe salidas generadas existentesEl comando nunca modifica automáticamente el código fuente existente.
Inicializar, validar y migrar
npx dhal init
npx dhal test-config
npx dhal migrate --checkinit crea una configuración genérica centrada en supervisión. test-config valida la configuración efectiva. migrate --check informa de migraciones sin cambiar archivos. Usa migrate --write solo después de revisar la propuesta.
Doctor y reparación conservadora
npx dhal doctor
npx dhal doctor --fix --dry-run
npx dhal doctor --fixdoctor --fix tiene un alcance intencionadamente limitado. Puede crear una configuración de supervisión ausente, migrar una configuración compatible anterior a schemaVersion y crear dhal.json.bak antes de cambiar un archivo existente.
No activa automáticamente bloqueo, confianza de proxy, Redis, reputación, OpenTelemetry ni webhooks. Usa --dry-run para revisar y --no-backup solo cuando ya exista otro mecanismo de copia.
Presets de framework
npx dhal presets list
npx dhal presets show nestjs-api
npx dhal presets apply hono-node-api --output dhal.hono.jsonLa versión 1.1 añade:
express-api
fastify-api
nestjs-api
koa-api
hono-node-api
node-http-apiLos presets operativos existentes, como starter, api-production, auth-hardened, strict-json-api, behind-proxy y observability, siguen disponibles. Revisa y valida toda salida generada.
Inspección OpenAPI
npx dhal openapi inspect openapi.json
npx dhal openapi inspect openapi.yamlJSON se analiza de forma estructural. YAML utiliza un escáner conservador para rutas, métodos, etiquetas, seguridad y tipos de contenido comunes. Convierte YAML complejo con anclas, fusiones o referencias externas a JSON.
La inspección clasifica autenticación, cargas multipart, webhooks, operaciones costosas, operaciones públicas y cuerpos JSON.
Generar políticas de supervisión desde OpenAPI
npx dhal openapi generate openapi.yamlLos parámetros se convierten en comodines:
/users/{userId} -> /users/*
/orgs/{orgId}/users/{userId} -> /orgs/*/users/*Todas las rutas generadas permanecen en monitor. Los perfiles existentes se conservan y se informan como preserve-existing.
npx dhal openapi generate openapi.yaml --config dhal.json --write
npx dhal openapi generate openapi.json --output dhal.openapi.jsonLa primera forma crea una copia de seguridad. Usa --force para sustituir otra salida existente, --no-backup para omitir la copia y --default-max para cambiar el límite generado.
La política generada es una propuesta, no un modelo de autorización. Revisa métodos agrupados, clasificaciones, límites y supuestos de contenido antes de aplicar bloqueo.
Preparación, compatibilidad y estabilidad
npx dhal readiness --production
npx dhal compat
npx dhal stabilityLa preparación evalúa la configuración de producción; compatibilidad muestra la matriz probada; estabilidad muestra el contrato de las superficies públicas. No sustituyen las pruebas de reproducción ni la revisión específica de la aplicación.
Reglas, reproducción y simulación
npx dhal rules
npx dhal replay fixtures.replay.json
npx dhal simulate fixtures.simulation.jsonMantén fixtures de tráfico válido y malicioso en control de versiones. La promoción debe fallar si el tráfico válido se bloquea o los casos maliciosos dejan de coincidir.
Política de CI
npx dhal cipolicy.ci puede impedir modos inseguros, exigir firma de webhooks, controlar reglas en monitor y rechazar supresiones caducadas.
Informe de soporte y comprobación de versión
npx dhal report --output dhal.report.json
npx dhal release-check --target stable --require-buildRevisa los informes antes de compartirlos. No publiques secretos, credenciales, tokens ni tráfico sin redactar.
Lista de verificación de aplicación
Antes de activar block o strict, confirma:
- versión exacta fijada y runtime compatible;
schemaVersionigual a"1";- cambios de incorporación u OpenAPI revisados;
- validación, migración, doctor y preparación correctos;
- fixtures válidos y maliciosos correctos;
- Redis o Valkey compartido cuando haya varias instancias;
- firma, redacción y cierre mediante
close()configurados; - reversión a
monitordocumentada y probada.