Azure / Azure/data-api-builder

[Bug]: GraphQL schema fails to initialize when stored procedure parameter defaults use non-numeric strings

Offen
#2,969 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
2.x
Vorherrschende Sprache
C#
Sterne
1.5k
Forks
370
Ø Merge
3 T. 22 Std.
Gemergte PRs (30 T.)
9

Beschreibung

When a stored procedure entity defines parameter defaults using non-numeric strings (for example `"default": "number"`), Data API builder fails to start with GraphQL enabled. The service throws a `DataApiBuilderException` during schema generation and `/graphql` becomes unavailable.

Image

**Steps to Reproduce:**

1. Define a stored procedure entity like this:

```json
"GetSeriesActors": {
"source": {
"object": "dbo.GetSeriesActors",
"type": "stored-procedure",
"parameters": [
{ "name": "seriesId", "required": false, "default": "number" },
{ "name": "top", "required": false, "default": "number" }
]
},
"graphql": { "enabled": true, "operation": "mutation" }
}
```
2. Start DAB with GraphQL enabled.
3. Observe logs.

**Expected Behavior:**
DAB should either:

* Treat `"default": "number"` as a literal string value, or
* Reject invalid defaults during configuration validation with a clear error message before startup.

**Actual Behavior:**
DAB starts but fails when GraphQL initializes. The logs show:

```
DataApiBuilderException: The parameter value number provided in configuration cannot be converted to the type Int
System.FormatException: The input string 'number' was not in a correct format.
at System.Int32.Parse(String s)
```

After this error, `/graphql` is unavailable, though REST endpoints continue to function normally.

**Environment:**

* Data API builder version: 1.7.75
* Database: SQL Server
* Host: Azure Container Apps
* Authentication: StaticWebApps

**Notes:**
The exception originates from `GraphQLStoredProcedureBuilder.ConvertValueToGraphQLType` when attempting to parse the invalid default value. DAB should validate or sanitize stored procedure parameter defaults before GraphQL schema generation to prevent this runtime failure.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginnen Sie damit, die Konfiguration der gespeicherten Prozedur mit aktiviertem GraphQL zu reproduzieren, und untersuchen Sie GraphQLStoredProcedureBuilder.ConvertValueToGraphQLType, wo der gemeldete Konvertierungsfehler auftritt. Bestätigen Sie, dass ungültige String-Standardwerte die Initialisierung des GraphQL-Schemas nicht mehr verhindern, entweder indem sie als Literalwerte behandelt werden oder indem vor dem Start ein klarer Konfigurationsfehler erzeugt wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
csharp, graphql, sql
Bereich
api, databases
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
48/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.