data-api-builder: [Bug]: Using the word Asset as a model returns an error in version 0.7.6

What happened?

i have the following gql schema:

type Asset @model {
  id: ID
  type: String
  name: String
  collection: String
  data: AssetData
  shares: [AssetShare]
  modifiedOn: String
}

type AssetData {
  contentType: String!
  host: String
  container: String!
  path: String
}

type AssetShare {
  id: String!
  target: String
  host: String
  container: String
  path: String
}

and this worked fine with versions prior to 0.7.6. this version fails with the following response:

{
  "errors": [
    {
      "message": "GraphQL type doesn't match any entity name or singular type in the runtime config.",
      "extensions": {
        "code": "BadRequest"
      }
    }
  ]
}

i have tried putting the plural and singular names in the configuration like this:

"Asset": {
      "source": "models",
      "graphql": {
        "type": {
          "singular": "Asset",
          "plural": "Assets"
        }
      },

but it doesn’t seem to solve it either.

Version

0.7.6 (part of the swa cli)

What database are you using?

CosmosDB NoSQL

What hosting model are you using?

Local (including CLI)

Which API approach are you accessing DAB through?

GraphQL

Relevant log output

[dataApi] fail: Azure.DataApiBuilder.Service.Startup[0]
[dataApi]          at Azure.DataApiBuilder.Service.Services.MetadataProviders.CosmosSqlMetadataProvider.GetEntityName(String graphQLType) in /_/src/Service/Services/MetadataProviders/CosmosSqlMetadataProvider.cs:line 320
[dataApi]          at Azure.DataApiBuilder.Service.Models.GQLFilterParser.Parse(IMiddlewareContext ctx, IInputField filterArgumentSchema, List`1 fields, BaseQueryStructure queryStructure) in /_/src/Service/Models/GraphQLFilterParsers.cs:line 198
[dataApi]          at Azure.DataApiBuilder.Service.Models.GQLFilterParser.ParseAndOr(IMiddlewareContext ctx, IInputField argumentSchema, IInputField filterArgumentSchema, List`1 fields, BaseQueryStructure baseQuery, PredicateOperation op) in /_/src/Service/Models/GraphQLFilterParsers.cs:line 430
[dataApi]          at Azure.DataApiBuilder.Service.Models.GQLFilterParser.Parse(IMiddlewareContext ctx, IInputField filterArgumentSchema, List`1 fields, BaseQueryStructure queryStructure) in /_/src/Service/Models/GraphQLFilterParsers.cs:line 56
[dataApi]          at Azure.DataApiBuilder.Service.Resolvers.CosmosQueryStructure.Init(IDictionary`2 queryParams) in /_/src/Service/Resolvers/CosmosQueryStructure.cs:line 168
[dataApi]          at Azure.DataApiBuilder.Service.Resolvers.CosmosQueryEngine.ExecuteAsync(IMiddlewareContext context, IDictionary`2 parameters) in /_/src/Service/Resolvers/CosmosQueryEngine.cs:line 64
[dataApi]          at Azure.DataApiBuilder.Service.Services.ResolverMiddleware.InvokeAsync(IMiddlewareContext context) in /_/src/Service/Services/ResolverMiddleware.cs:line 95
[dataApi]          at HotChocolate.Utilities.MiddlewareCompiler`1.ExpressionHelper.AwaitTaskHelper(Task task)
[dataApi]          at HotChocolate.Execution.Processing.Tasks.ResolverTask.ExecuteResolverPipelineAsync(CancellationToken cancellationToken)
[dataApi]          at HotChocolate.Execution.Processing.Tasks.ResolverTask.TryExecuteAsync(CancellationToken cancellationToken)

Code of Conduct

  • I agree to follow this project’s Code of Conduct

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Comments: 15 (9 by maintainers)

Most upvoted comments

hi @dgcaron, are you using filter while retrieving the list of assets?

Also, does your configuration contain the entities - AssetData and AssetShare? If not, could you please try adding those to the config as well?