data-api-builder icon indicating copy to clipboard operation
data-api-builder copied to clipboard

Cosmos: Add config validations to ensure GraphQL types are either entity names or singular types

Open Aniruddh25 opened this issue 3 years ago • 0 comments

Today, both the runtime configuration and the GraphQL schema are provided by the customer. For the engine, to behave correctly, the types specified in the GraphQL schema here: https://github.com/Azure/data-api-builder/blob/d5820d402fb746377a87b13298ca0e6ad4cb03d3/src/Service/schema.gql#L9

should match either

  1. the entity name in the runtime configuration see this: https://github.com/Azure/data-api-builder/blob/d5820d402fb746377a87b13298ca0e6ad4cb03d3/src/Service/dab-config.Cosmos.json#L34 or
  2. the graphql.type.singular property of the entity: https://github.com/Azure/data-api-builder/blob/d5820d402fb746377a87b13298ca0e6ad4cb03d3/src/Service/dab-config.Cosmos.json#L39

It is quite possible to have configuration errors, where the schema doesn't match the configuration. This issue is to add validations at startup to make sure these errors are easily found and a useful error is given to the developer to correct their configuration as per the graphql schema. E.g. of someone who already encounter this: https://github.com/Azure/data-api-builder/issues/876

Aniruddh25 avatar Oct 18 '22 22:10 Aniruddh25