-
Notifications
You must be signed in to change notification settings - Fork 288
Closed
Labels
Description
What happened?
We have the following GraphQL schema file:
type AppReport @model {
id: ID
description: String
reportType: String
reportSubType: String
status: String
latitude: Float
longitude: Float
created: DateTime
createdBy: String
createdById: String
approved: Boolean
approvedBy: String
approvedDate: DateTime
attachments: [ReportAttachment]
deleted: Boolean
emailSent: Boolean
caseResolutionText: String
}
type ReportAttachment {
id: ID
type: String
url: String
latitude: Float
longitude: Float
}
type UserAction @model {
id: ID
reportId: String
type: String
created: DateTime
createdBy: String
createdById: String
confirmed: Boolean
confirmedBy: String
confirmedDate: DateTime
content: String
deleted: Boolean
caseResolutionText: String
}
type UserSubscription @model {
id: ID
_ts: String
userId: String
subscriptionType: String
registrationType: String
registrationId: String
areaId: String
}
And the following config file:
{
"$schema": "https://github.com/Azure/data-api-builder/releases/download/v1.1.7/dab.draft.schema.json",
"data-source": {
"database-type": "cosmosdb_nosql",
"connection-string": "@env('DB_CONNECTION_STRING')",
"options": {
"database": "ecovocegql",
"schema": "staticwebapp.database.schema.gql"
}
},
"runtime": {
"graphql": {
"enabled": true,
"path": "/graphql"
},
"host": {
"cors": {
"origins": ["*"],
"allow-credentials": false
},
"authentication": {
"provider": "StaticWebApps"
},
"mode": "production"
}
},
"entities": {
"AppReport": {
"source": "reports",
"graphql": true,
"permissions": [
{
"role": "anonymous",
"actions": ["*"]
}
]
},
"UserAction": {
"graphql": true,
"source": "actions",
"permissions": [
{
"role": "anonymous",
"actions": ["*"]
}
]
},
"UserSubscription": {
"graphql": true,
"source": "subscriptions",
"permissions": [
{
"role": "anonymous",
"actions": ["*"]
}
]
}
}
}
After the dab update, when executing a getReports query, we get this error: "The given key 'ReportAttachment' was not present in the dictionary."
This used to work before the update, now there is some sort of validation that requires the nested 'ReportAttachment' field to be not empty, which is not always the case.
Version
1.1.7+74ea6c5f37f8629fd7f8b13fc56027bf0bf0a93a
What database are you using?
CosmosDB NoSQL
What hosting model are you using?
Static Web Apps (SWA)
Which API approach are you accessing DAB through?
GraphQL
Relevant log output
fail: Azure.DataApiBuilder.Service.Startup[0]
A GraphQL request execution error occurred.
System.Collections.Generic.KeyNotFoundException: The given key 'ReportAttachment' was not present in the dictionary.
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at Azure.DataApiBuilder.Core.Authorization.AuthorizationResolver.GetDBPolicyForRequest(String entityName, String roleName, EntityActionOperation operation) in /_/src/Core/Authorization/AuthorizationResolver.cs:line 201
at Azure.DataApiBuilder.Core.Authorization.AuthorizationResolver.ProcessDBPolicy(String entityName, String roleName, EntityActionOperation operation, HttpContext httpContext) in /_/src/Core/Authorization/AuthorizationResolver.cs:line 188
at Azure.DataApiBuilder.Core.Resolvers.AuthorizationPolicyHelpers.ProcessFilter(HttpContext context, IAuthorizationResolver authorizationResolver, ISqlMetadataProvider sqlMetadataProvider, String clientRoleHeader, List`1 elementalOperations, String entityName, DatabaseObject entityDBObject, Action`2 postProcessCallback) in /_/src/Core/Resolvers/AuthorizationPolicyHelpers.cs:line 161
at Azure.DataApiBuilder.Core.Resolvers.AuthorizationPolicyHelpers.ProcessAuthorizationPolicies(EntityActionOperation operationType, BaseQueryStructure queryStructure, HttpContext context, IAuthorizationResolver authorizationResolver, ISqlMetadataProvider sqlMetadataProvider) in /_/src/Core/Resolvers/AuthorizationPolicyHelpers.cs:line 77
at Azure.DataApiBuilder.Core.Resolvers.CosmosQueryStructure.Init(IDictionary`2 queryParams) in /_/src/Core/Resolvers/CosmosQueryStructure.cs:line 152
at Azure.DataApiBuilder.Core.Resolvers.CosmosQueryEngine.ExecuteAsync(IMiddlewareContext context, IDictionary`2 parameters, String dataSourceName) in /_/src/Core/Resolvers/CosmosQueryEngine.cs:line 72
at Azure.DataApiBuilder.Service.Services.ExecutionHelper.ExecuteQueryAsync(IMiddlewareContext context) in /_/src/Core/Services/ExecutionHelper.cs:line 79
at ResolverTypeInterceptor.<>c__DisplayClass5_1.<<-ctor>b__5>d.MoveNext() in /_/src/Core/Services/ResolverTypeInterceptor.cs:line 23
--- End of stack trace from previous location ---
at HotChocolate.Execution.Processing.Tasks.ResolverTask.ExecuteResolverPipelineAsync(CancellationToken cancellationToken)
at HotChocolate.Execution.Processing.Tasks.ResolverTask.TryExecuteAsync(CancellationToken cancellationToken)
Code of Conduct
- I agree to follow this project's Code of Conduct
jbasoftms, MrMossevig and engineirik