Compartir a través de


Comando validate

Valide un archivo de configuración de Data API Builder sin iniciar el entorno de ejecución. Ejecuta una secuencia de comprobaciones (esquema, estructura, permisos, conectividad, metadatos) y devuelve un código de salida para éxito (0) o error (distinto de cero). Útil en canalizaciones de CI/CD.

Syntax

dab validate [options]

Vista rápida

Opción Resumen
-c, --config Ruta de acceso al archivo de configuración. El valor predeterminado es específico del entorno o dab-config.json.

Nota:

validate no acepta marcas distintas de --config.

Códigos de salida

Código Meaning
0 La configuración pasó todas las fases.
distinto de cero Error en una o varias fases. Consulte los registros para obtener más información.

Ejemplo de CI:

dab validate && echo "OK" || { echo "INVALID CONFIG"; exit 1; }

-c, --config

Ruta de acceso al archivo de configuración. Si se omite, validator busca dab-config.<DAB_ENVIRONMENT>.json primero y, a continuación dab-config.json, .

Example

dab validate --config ./dab-config.prod.json

Fases de validación

La validación se produce en orden. Si se produce un error en una fase, se omiten las fases posteriores.

1. Esquema

Comprueba que el json de configuración coincide con el esquema.

Reglas

  • $schema es accesible o estructuralmente válido
  • data-sourceExisten secciones , runtimey entities y están bien formadas
  • Propiedades inesperadas no permitidas (por esquema)
  • Los valores de enumeración (como database-type) son válidos

Errores y correcciones

Problema Example Corrección
Propiedad mal escrita "conn-string" Utilice "connection-string".
Enumeración no válida "database-type": "mydb" Use valores admitidos.
Forma incorrecta entities como matriz Use el objeto con clave por nombres de entidad.

2. Propiedades de configuración

Comprueba la coherencia más allá del esquema.

Reglas

  • Válido database-type proporcionado
  • Para cosmosdb_nosql, se requiere la ruta de acceso de esquema de GraphQL y base de datos. También se puede requerir un contenedor en función de las entidades. Se omite la configuración de REST.
  • Se debe habilitar al menos un punto de conexión (REST, GraphQL, MCP)
  • Las rutas rest/GraphQL comienzan por / y no colisionan
  • Las marcas heredadas *.disabled emiten advertencias, pero no se producen errores
  • Si usa JWT, se deben establecer el emisor y la audiencia.

Errores y correcciones

Problema Example Corrección
Todos los puntos de conexión desactivados REST=false, GraphQL=false, MCP=false Vuelva a habilitar uno.
Esquema que falta en Cosmos DB No graphql-schema Proporcione la ruta de acceso del esquema.
Error de coincidencia de autenticación Conjunto de emisores, falta audiencia Proporcione ambos o ninguno.

3. Permisos

Comprueba que los permisos de cada entidad son válidos.

Reglas

  • Cada entrada tiene un rol no vacío

  • Las acciones deben ser válidas:

    • Tablas y vistas: create, read, update, delete, *
    • Procedimientos almacenados: execute, *
  • No hay listas de acciones vacías

  • Un único conjunto de acciones debe ser * acciones explícitas OR, no ambas

Errores y correcciones

Problema Example Corrección
Acción no admitida "drop" Use read, etc.
SP con CRUD Usos de procedimientos almacenados update Use execute o *.
Lista vacía "actions": [] Proporcione acciones.

4. Conexión de base de datos

Comprueba que funciona la conexión de base de datos.

Reglas

  • Se puede analizar la cadena de conexión
  • Credenciales válidas
  • Existe una base de datos o un contenedor

Errores y correcciones

Problema Example Corrección
Timeout Servidor inaccesible Compruebe la red o el firewall.
Inicio de sesión incorrecto Error de autenticación Corrija el nombre de usuario y la contraseña.
Falta base de datos Base de datos no encontrada Cree una base de datos o actualice la configuración.

5. Metadatos de entidad

Comprueba las definiciones de entidad en la base de datos.

Reglas

  • El objeto de origen existe
  • Tablas y vistas: existen campos clave válidos, campos incluidos o excluidos.
  • Las vistas siempre necesitan source.key-fields
  • Procedimientos almacenados: los parámetros coinciden con la firma
  • Relaciones: la entidad de destino existe, la vinculación de campos se alinea con las claves; linking.object debe existir para varios a varios
  • Campos válidos de referencia de directivas
  • Almacenamiento en caché de TTL no negativo

Errores y correcciones

Problema Example Corrección
Campos clave que faltan Ver sin key-fields Agregue source.key-fields.
Columna incorrecta fields.include enumera las columnas que faltan Quite o corrija el nombre.
Error de coincidencia de relaciones Recuento de campos de vinculación != recuento de PK Corregir los campos de vinculación.

Ejemplos de salida

Éxito:

Data API builder <version>
Config is valid.

Fracaso:

Data API builder <version>
Error: View 'sales_summary' missing required key-fields.
Config is invalid.

Nota:

Los errores de validación son específicos de la fase. Corrija la primera fase de error antes de volver a ejecutar.

archivos de Environment-Specific

Si DAB_ENVIRONMENT se establece, validate carga dab-config.<DAB_ENVIRONMENT>.json.

Example

DAB_ENVIRONMENT=Staging dab validate

Nota:

El validador comprueba solo un único archivo resuelto. No combina variantes del entorno.

Ejemplo de uso

Básico:

dab validate

Archivo explícito:

dab validate --config ./configs/dab-config.test.json

Multi-environment:

for env in Development Staging Production; do
  echo "Validating $env..."
  DAB_ENVIRONMENT=$env dab validate || exit 1
done

Error rápido de CI:

dab validate && echo "OK" || { echo "INVALID CONFIG"; exit 1; }

Flujo de trabajo

  1. Ejecute dab validate:
  2. Corrección de la primera fase de error
  3. Volver a ejecutar hasta que el código de salida sea 0
  4. Confirmación de la configuración validada

Sugerencia

Valide los pequeños cambios a menudo. Use diferencias de control de versiones para identificar rápidamente las regresiones.