Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Linter de contratos y reglas de seguridad

5 tareas · 38 min · Principiante

Un contrato OpenAPI describe qué ofrece una API: rutas, parámetros, respuestas y credenciales. Un linter lo lee sin tocar ninguna API y lo contrasta con un conjunto de reglas del equipo. En Mayoristas Boquerón lees el contrato de pedidos, el conjunto de reglas del repositorio y la salida del linter, y aprendes lo que un resultado limpio demuestra y lo que no. Todo es lectura de archivos ficticios.

0 de 5 · 0%

Objetivo de la sala

Un contrato OpenAPI describe qué ofrece una API: rutas, parámetros, respuestas y credenciales. Un linter lo lee sin tocar ninguna API y lo contrasta con un conjunto de reglas del equipo. En Mayoristas Boquerón lees el contrato de pedidos, el conjunto de reglas del repositorio y la salida del linter, y aprendes lo que un resultado limpio demuestra y lo que no. Todo es lectura de archivos ficticios.

Un linter de contratos analiza el archivo del contrato como texto estructurado: no envía una sola petición. Aplica reglas escritas por el equipo (por ejemplo «toda operación declara su seguridad» o «todo parámetro numérico tiene un máximo») y avisa de lo que no las cumple. Es barato, rápido y se corre en cada cambio.

Su límite es que solo ve el contrato. Si el servidor real hace algo distinto de lo escrito, el linter no se entera. Un resultado limpio dice «el contrato cumple las reglas»; no dice «la API cumple el contrato».

Responde para continuar

¿Qué demuestra una salida limpia del linter sobre el contrato de una API?

Ver pista de ayuda

Piensa en qué archivo analiza el linter y en qué no puede ver.

El conjunto de reglas vive en el repositorio (aquí, .spectral.yaml). Cada regla tiene una severidad: error (rompe el trabajo de CI), warn (avisa), info o off (apagada, no se evalúa). Apagar una regla es una decisión de gobierno que debe tener dueño y motivo; si nadie la recuerda, un control desaparece sin que nadie lo decida.

Abre el conjunto de reglas del repositorio y busca cuál está apagada.

Responde para continuar

Escribe el nombre de la regla que está apagada (severidad off).

Ver pista de ayuda

Con la terminal, `cat .spectral.yaml` y mira la severidad de cada regla.

Solo los resultados con severidad error rompen el trabajo; los warning se acumulan. Un equipo que no distingue unos de otros acaba ignorando ambos. Leer una salida es contar por severidad, no por volumen.

Lee la salida del linter sobre el contrato de pedidos y cuenta las líneas que son errores.

Responde para continuar

¿Cuántos resultados con severidad error hay en la salida del linter?

Ver pista de ayuda

Abre `salida/lint-pedidos.txt` y cuenta solo las líneas marcadas `error`.

Una regla puede estar bien escrita y aun así dejar pasar lo que no debe. La regla de seguridad del equipo comprueba que cada operación tenga la clave security; no examina lo que dice. En OpenAPI, una operación con security: [] declara una lista vacía: significa «esta operación no exige ninguna credencial» y sustituye a cualquier requisito global.

Cruza el contrato con el conjunto de reglas: busca la operación que se declara sin credencial, con una descripción que sugiere datos que no deberían ser públicos, y que el linter no marca.

Responde para continuar

Escribe el operationId de la operación que se declara sin credencial y que el linter no marca.

Ver pista de ayuda

Busca `security: []` en `contratos/pedidos.yaml` y comprueba si esa operación aparece en la salida del linter.

La regla no falla: hace exactamente lo que su descripción dice. El problema es lo que se le pidió. Mejorarla significa pedirle más: distinguir una lista vacía de una lista con credenciales y exigir que las operaciones públicas estén en una lista de excepciones con dueño.

Responde para continuar

¿Cómo se corrige la regla de seguridad que deja pasar una operación sin credencial?

Ver pista de ayuda

La regla dejó pasar algo por lo que comprueba, no por un error de la herramienta.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad