/templates/schema/v1.json. Apunta tu editor a él y vertracloud.template.yaml se valida y se autocompleta mientras escribes, sin más herramientas que instalar aparte de una extensión de YAML. El schema se genera a partir de la misma definición que usa la API para validar manifiestos, así que no se desincroniza de la plataforma.
Úsalo en tu editor
Añade este comentario como primera línea del manifiesto:- autocompletado de cada campo y enum (
category,language,web,database, …); - un subrayado de error para campos desconocidos, tipos incorrectos, valores fuera de rango y patrones que no coinciden (por ejemplo, un
idcon mayúsculas).
Úsalo en CI
Cualquier validador de JSON Schema puede comprobar un manifiesto después de convertir el YAML a JSON. Por ejemplo, conajv-cli:
vertra template validate.
Qué comprueba el schema
El schema comprueba la forma del manifiesto: qué campos existen, sus tipos y enums, patrones de cadena, rangos numéricos y longitudes, tamaños de array y qué campos exige cada tipo de servicio.Qué comprueba solo la API
Algunas reglas no se pueden escribir en JSON Schema porque miran varios campos a la vez o el estado de la plataforma. La CLI, el editor, la API y el CI del repositorio público las ejecutan con el mismo código:- placeholders que apuntan a servicios, preguntas o secretos que existen;
whenque se refiere a una pregunta anterior, con unequalsdel tipo correcto;- una pregunta
selectcon opciones, y undefaultque es una de ellas; recommendedno inferior amin, ymaxno inferior arecommended;- campos de imagen en servicios code y campos de code en servicios image;
min_planque es el id de un plan real, y unaversionde base de datos que está disponible;- expresiones regulares inseguras en
validation.regex; - nombres de variables controlados por la plataforma, y valores literales que parecen secretos;
- combinaciones de permisos, y campos reservados para plantillas privadas o para públicos.
Versionado
El nombre del archivo lleva la versión:v1.json describe el formato de manifiesto v1. Un cambio de formato que no sea compatible se publicaría con un nombre de archivo nuevo en lugar de sustituir a v1.json. Apunta tu editor a la versión con la que escribiste tu manifiesto.
Relacionado
Referencia del manifiesto
Todos los campos en prosa, con ejemplos.
Validar y probar
La CLI, la API y los códigos de validación.