Azure / Azure/data-api-builder
🥕[Bug]: JSON Schema: Inaccurate Required/Not-Required constraints
- 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
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