Descripción
src/generator/validateSchema.js (línea 19) decide si mantiene activo el bloque de validación AJV comparando de forma estricta:
if (validate_schema === true) {
...
} else {
deleteValidateSchema(collection[i].item[j].item[k].event[0].script.exec)
}
Si validate_schema llega como cualquier valor "truthy" que no sea el booleano exacto true (por ejemplo el string "true"), cae al else y comenta el bloque AJV en todas las requests, sin ningún warning ni error — da la sensación de que la opción "Validate output schema" no funciona.
Reproducción
Usando example/swagger.yaml + example/o2p_config_file.json:
validate_schema: true (booleano) → AJV queda activo correctamente en todos los requests JSON.
validate_schema: "true" (string, mismo valor pero mal tipado) → AJV sale comentado (/*var Ajv = require("ajv"); ... });*/) en absolutamente todas las requests.
node index.js -f swagger.yaml -c <config con validate_schema:"true">
Impacto
Si el consumidor de la librería (UI, script, config generado a mano) serializa el flag como string en vez de booleano, la validación de schema se desactiva completamente sin ningún aviso, y es difícil de diagnosticar porque el config "parece" correcto a simple vista.
Fix propuesto
- Coercionar el valor recibido a booleano antes de comparar (
Boolean(validate_schema) o validate_schema === true || validate_schema === 'true'), o
- Validar el tipo de
validate_schema al inicio y lanzar un error claro si no es booleano, en vez de fallar en silencio.
Descripción
src/generator/validateSchema.js(línea 19) decide si mantiene activo el bloque de validación AJV comparando de forma estricta:Si
validate_schemallega como cualquier valor "truthy" que no sea el booleano exactotrue(por ejemplo el string"true"), cae alelsey comenta el bloque AJV en todas las requests, sin ningún warning ni error — da la sensación de que la opción "Validate output schema" no funciona.Reproducción
Usando
example/swagger.yaml+example/o2p_config_file.json:validate_schema: true(booleano) → AJV queda activo correctamente en todos los requests JSON.validate_schema: "true"(string, mismo valor pero mal tipado) → AJV sale comentado (/*var Ajv = require("ajv");...});*/) en absolutamente todas las requests.Impacto
Si el consumidor de la librería (UI, script, config generado a mano) serializa el flag como string en vez de booleano, la validación de schema se desactiva completamente sin ningún aviso, y es difícil de diagnosticar porque el config "parece" correcto a simple vista.
Fix propuesto
Boolean(validate_schema)ovalidate_schema === true || validate_schema === 'true'), ovalidate_schemaal inicio y lanzar un error claro si no es booleano, en vez de fallar en silencio.