Azure / Azure/static-web-apps

A valid connection string should be provided

Open
#1,412 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
346
Forks
67
PR merge metrics
No merged PRs in 30d

Description

**Describe the bug**

Using Azure Static Web Apps Cli with database connection. When running

`swa start ./src --swa-config-location config/local --data-api-location swa-db-connections/ --api-location api/`

I get the followiong error:

```
[dataApi] Unhandled exception. Azure.DataApiBuilder.Service.Exceptions.DataApiBuilderException: A valid Connection String should be provided.
[dataApi] ---> System.ArgumentException: Format of the initialization string does not conform to specification starting at index 0.
[dataApi] at System.Data.Common.DbConnectionOptions.GetKeyValuePair(String connectionString, Int32 currentPosition, StringBuilder buffer, Boolean useOdbcRules, String& keyname, String& keyvalue)
[dataApi] at System.Data.Common.DbConnectionOptions.ParseInternal(Dictionary`2 parsetable, String connectionString, Boolean buildChain, Dictionary`2 synonyms, Boolean firstKey)
[dataApi] at System.Data.Common.DbConnectionOptions..ctor(String connectionString, Dictionary`2 synonyms, Boolean useOdbcRules)
[dataApi] at System.Data.Common.DbConnectionStringBuilder.set_ConnectionString(String value)
[dataApi] at Microsoft.Data.SqlClient.SqlConnectionStringBuilder..ctor(String connectionString)
[dataApi] at Azure.DataApiBuilder.Config.RuntimeConfigLoader.GetConnectionStringWithApplicationName(String connectionString) in /_/src/Config/RuntimeConfigLoader.cs:line 200
[dataApi] --- End of inner exception stack trace ---
[dataApi] at Azure.DataApiBuilder.Config.RuntimeConfigLoader.GetConnectionStringWithApplicationName(String connectionString) in /_/src/Config/RuntimeConfigLoader.cs:line 204
[dataApi] at Azure.DataApiBuilder.Config.RuntimeConfigLoader.TryParseConfig(String json, RuntimeConfig& config, ILogger logger, String connectionString, Boolean replaceEnvVar, String dataSourceName, Dictionary`2 datasourceNameToConnectionString, EnvironmentVariableReplacementFailureMode replacementFailureMode) in /_/src/Config/RuntimeConfigLoader.cs:line 110
[dataApi] at Azure.DataApiBuilder.Config.FileSystemRuntimeConfigLoader.TryLoadConfig(String path, RuntimeConfig& config, Boolean replaceEnvVar) in /_/src/Config/FileSystemRuntimeConfigLoader.cs:line 80
[dataApi] at Azure.DataApiBuilder.Config.FileSystemRuntimeConfigLoader.TryLoadKnownConfig(RuntimeConfig& config, Boolean replaceEnvVar) in /_/src/Config/FileSystemRuntimeConfigLoader.cs:line 103
[dataApi] at Cli.ConfigGenerator.TryStartEngineWithOptions(StartOptions options, FileSystemRuntimeConfigLoader loader, IFileSystem fileSystem) in /_/src/Cli/ConfigGenerator.cs:line 1037
[dataApi] at Cli.Commands.StartOptions.Handler(ILogger logger, FileSystemRuntimeConfigLoader loader, IFileSystem fileSystem) in /_/src/Cli/Commands/StartOptions.cs:line 41
[dataApi] at Cli.Program.<>c__DisplayClass2_0.b__4(StartOptions options) in /_/src/Cli/Program.cs:line 60
[dataApi] at CommandLine.ParserResultExtensions.WithParsed[T](ParserResult`1 result, Action`1 action)
[dataApi] at Cli.Program.Execute(String[] args, ILogger cliLogger, IFileSystem fileSystem, FileSystemRuntimeConfigLoader loader) in /_/src/Cli/Program.cs:line 56
[dataApi] at Cli.Program.Main(String[] args) in /_/src/Cli/Program.cs:line 41
[dataApi] Aborted
```

**Expected behavior**

The server should start normally.

**Additional context**

Relevant part of the swa-db config:

```
{
"$schema": "https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json",
"data-source": {
"database-type": "mssql",
"connection-string": "@env('DATABASE_CONNECTION_STRING')",
"options": {
"set-session-context": true
}
},
```

The environment variable for the database is configured correctly, it worked yesterday and I didn't change it. I just copied it from Azure and put in the right password.

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the `swa start ./src --swa-config-location config/local --data-api-location swa-db-connections/ --api-location api/` command with the shown data-api configuration. Start in `src/Config/RuntimeConfigLoader.cs`, then follow `src/Config/FileSystemRuntimeConfigLoader.cs` and `src/Cli/ConfigGenerator.cs` to inspect how `DATABASE_CONNECTION_STRING` is loaded and parsed. Done means the server starts normally with the configured connection string.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, sql
Domain
api, cli, database
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.