Azure / Azure/data-api-builder
🥕[Bug]: Dab validation issues
- Dominant language
- C#
- Stars
- 1.5k
- Forks
- 370
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 8
Description
# 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`)
Contributor guide
Assessment
This issue has not been assessed yet.