Azure / Azure/data-api-builder

🥕[Bug]: JSON Schema: Inaccurate Required/Not-Required constraints

Abierto
#2,519 1 comentario 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
C#
Estrellas
1.5k
Forks
370
Merge medio
3 d 22 h
PR fusionados (30 d)
9

Descripción

Discrepancies exist between the official Data API Builder documentation and the JSON schema regarding the required status of certain properties. The documentation is correct and highlights where the schema needs to be adjusted.

## Required Properties NOT Required in Schema

1. **`data-source.options.database`** (for `cosmosdb_nosql`)
- **Docs:** Required when `database-type` is `cosmosdb_nosql`.
- **Schema:** Not marked as required.

2. **`data-source.options.schema`** (for `cosmosdb_nosql`)
- **Docs:** Required when `database-type` is `cosmosdb_nosql`.
- **Schema:** Not marked as required.

3. **`entities..source.key-fields`**
- **Docs:** Required **only** when `type` is `view`.
- **Schema:** Not conditionally marked as required.

4. **`entities..permissions`**
- **Docs:** Required for defining access controls for the entity.
- **Schema:** Not marked as required.

## Not-Required Properties REQUIRED in Schema

1. **`runtime.rest.enabled`**
- **Docs:** Optional; defaults to `true`.
- **Schema:** Marked as required.

2. **`runtime.graphql.enabled`**
- **Docs:** Optional; defaults to `true`.
- **Schema:** Marked as required.

## Suggested Fix

1. **For `cosmosdb_nosql` Configuration:**

```json
{
"if": {
"properties": { "database-type": { "const": "cosmosdb_nosql" } }
},
"then": {
"properties": {
"options": {
"required": ["database", "schema"]
}
}
}
}
```

2. **For Entity Definitions:**

```json
{
"patternProperties": {
"^[a-zA-Z0-9_-]+$": {
"properties": {
"source": {
"properties": {
"type": { "type": "string" },
"key-fields": { "type": "array" }
},
"required": ["type"],
"allOf": [
{
"if": {
"properties": { "type": { "const": "view" } }
},
"then": { "required": ["key-fields"] }
}
]
},
"permissions": { "type": "array" }
},
"required": ["source", "permissions"]
}
}
}
```

3. **For Runtime Configuration:**

```json
{
"properties": {
"runtime": {
"properties": {
"rest": {
"properties": {
"enabled": { "type": "boolean", "default": true }
}
},
"graphql": {
"properties": {
"enabled": { "type": "boolean", "default": true }
}
}
}
}
}
}
```

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

El issue no indica ningún archivo de esquema ni punto de entrada de pruebas. Localiza el JSON Schema utilizado para la configuración de Data API Builder, compara sus propiedades obligatorias y valores predeterminados con la documentación oficial y, después, valida las reglas condicionales para Cosmos DB, las entidades de vista, los permisos y los flags de tiempo de ejecución.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
json
Área
api
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
30/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.