Azure / Azure/data-api-builder

🥕[Bug]: Dab validation issues

Abierto
#2,537 0 comentarios 0 reacciones 1 asignado Reclamado por @abhishekkumams Ver en GitHub
Lenguaje dominante
C#
Estrellas
1.5k
Forks
370
Merge medio
3 d 22 h
PR fusionados (30 d)
9

Descripción

# When I run `dab validate`.

The purpose of `validate` is help the developer find and fix configuration errors.

## Inconsistent output

```
c:\Temp\demo>dab validate -c dab-config.json
Information: Microsoft.DataApiBuilder 1.3.19
Information: User provided config file: dab-config.json
Information: Validating config file: dab-config.json
Loading config file from c:\Temp\demo\dab-config.json.
Information: The config satisfies the schema requirements.
Information: Validating entity relationships.
Information: [Actor] REST path: /api//Actor
Information: [Character] REST path: /api//Character
Information: Config is valid.
```

### Problem

```
Loading config file from c:\Temp\demo\dab-config.json.
```

**Incorrect output:** `Loading config file from c:\Temp\demo\dab-config.json.`

**Correct output:** `Information: Loading config file from c:\Temp\demo\dab-config.json.`

Assuming this is not using the same logging mechanism and should.

## Invalid output

```
c:\Temp\demo>dab validate -c dab-config.json
Information: Microsoft.DataApiBuilder 1.3.19
Information: User provided config file: dab-config.json
Information: Validating config file: dab-config.json
Loading config file from c:\Temp\demo\dab-config.json.
Information: The config satisfies the schema requirements.
Information: Validating entity relationships.
Information: [Actor] REST path: /api//Actor
Information: [Character] REST path: /api//Character
Information: Config is valid.
```

### Problem

```
Information: [Actor] REST path: /api//Actor
Information: [Character] REST path: /api//Character
```

**Incorrect path:** `/api//Actor` (double slash)

**Correct path:** `/api/Actor`

## Misleading output

```
c:\Temp\demo>dab validate -c dab-config.json
Information: Microsoft.DataApiBuilder 1.3.19
Information: User provided config file: dab-config.json
Information: Validating config file: dab-config.json
Loading config file from c:\Temp\demo\dab-config.json.
Deserialization of the configuration file failed during a post-processing step.
Message:
A valid Connection String should be provided.
Stack Trace:
at Azure.DataApiBuilder.Config.RuntimeConfigLoader.GetConnectionStringWithApplicationName(String connectionString) in /_/src/Config/RuntimeConfigLoader.cs:line 279
at Azure.DataApiBuilder.Config.RuntimeConfigLoader.TryParseConfig(String json, RuntimeConfig& config, ILogger logger, String connectionString, Boolean replaceEnvVar, EnvironmentVariableReplacementFailureMode replacementFailureMode) in /_/src/Config/RuntimeConfigLoader.cs:line 173
Information: Failed to parse the config file
Error: Config is invalid. Check above logs for details.
```

### Problem

```
Loading config file from c:\Temp\demo\dab-config.json.
Deserialization of the configuration file failed during a post-processing step.
```

**Message:** Deserialization of the configuration file failed during a post-processing step.

This configuration deserialized fine. This message is an error. The connection string was simply invalid.

## Misleading output

```
c:\Temp\demo>dab validate -c dab-config.json
Information: Microsoft.DataApiBuilder 1.3.19
Information: User provided config file: dab-config.json
Information: Validating config file: dab-config.json
Loading config file from c:\Temp\demo\dab-config.json.
Deserialization of the configuration file failed.
Message:
The value mssqal is not a valid enum value of Azure.DataApiBuilder.Config.ObjectModel.DatabaseType
Stack Trace:
at Azure.DataApiBuilder.Config.Converters.EnumMemberJsonEnumConverterFactory.JsonStringEnumConverterEx`1.Read(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options) in /_/src/Config/Converters/EnumMemberJsonEnumConverterFactory.cs:line 129
at Azure.DataApiBuilder.Config.Converters.EnumExtensions.Deserialize[T](String value) in /_/src/Config/Converters/EnumMemberJsonEnumConverterFactory.cs:line 31
at Azure.DataApiBuilder.Config.Converters.DataSourceConverterFactory.DataSourceConverter.Read(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options) in /_/src/Config/Converters/DataSourceConverterFactory.cs:line 63
at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value, Boolean& isPopulatedValue)
at System.Text.Json.Serialization.JsonConverter`1.TryReadAsObject(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, Object& value)
at System.Text.Json.Serialization.Converters.LargeObjectWithParameterizedConstructorConverter`1.ReadAndCacheConstructorArgument(ReadStack& state, Utf8JsonReader& reader, JsonParameterInfo jsonParameterInfo)
at System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value, Boolean& isPopulatedValue)
at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 utf8Json, JsonTypeInfo`1 jsonTypeInfo, Nullable`1 actualByteCount)
at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 json, JsonTypeInfo`1 jsonTypeInfo)
at System.Text.Json.JsonSerializer.Deserialize[TValue](String json, JsonSerializerOptions options)
at Azure.DataApiBuilder.Config.RuntimeConfigLoader.TryParseConfig(String json, RuntimeConfig& config, ILogger logger, String connectionString, Boolean replaceEnvVar, EnvironmentVariableReplacementFailureMode replacementFailureMode) in /_/src/Config/RuntimeConfigLoader.cs:line 142
Information: Failed to parse the config file
Error: Config is invalid. Check above logs for details.
```

### Problem

```
Information: Failed to parse the config file
Error: Config is invalid. Check above logs for details.
```

***Incorrect message:*** Information: Failed to parse the config file

***Correct message:*** The value mssqal is not a valid enum value

#### Also

***Incorrect message:*** Information: Failed to parse the config file

***Correct message:*** `Error`: Failed to parse the config file

## Invalid validation

```
c:\Temp\demo>dab validate -c dab-config.json
Information: Microsoft.DataApiBuilder 1.3.19
Information: User provided config file: dab-config.json
Information: Validating config file: dab-config.json
Loading config file from c:\Temp\demo\dab-config.json.
Information: The config satisfies the schema requirements.
Information: Validating entity relationships.
Information: [Actor] REST path: /api//Character
Information: Config is valid.
```

### Problem

```
Information: Config is valid.
```

This configuation has to entities with the identical name. (both called `Actor`)

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.