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

[Bug]: Missing `description` in JSON schema

Open JerryNixon opened this issue 2 years ago • 3 comments

What happened?

The following JSON schema properties are missing the description field.

  • [ ] data-source.options
  • [ ] runtime.rest.path
  • [ ] runtime.graphql.path
  • [ ] runtime.host.authentication
  • [ ] runtime.host.authentication.jwt
  • [ ] runtime.host.authentication.jwt.audience
  • [ ] runtime.host.authentication.jwt.issuer

Here are some starters, but you could be clearer than me:

  • data-source.options: Additional configuration options specific to the selected database type.
  • runtime.rest.path: The URL path prefix for REST API endpoints.
  • runtime.graphql.path: The URL path prefix for GraphQL API endpoints.
  • runtime.host.authentication: Configuration settings for authenticating API requests.
  • runtime.host.authentication.jwt: Settings for JSON Web Token (JWT) based authentication.
  • runtime.host.authentication.jwt.audience: The intended audience of the JWT, usually the API or service the token is meant for.
  • runtime.host.authentication.jwt.issuer: The entity that issued the JWT, typically your server's identity.

Version

https://raw.githubusercontent.com/Azure/data-api-builder/main/schemas/dab.draft.schema.json

What database are you using?

Azure SQL

What hosting model are you using?

Local (including CLI)

Which API approach are you accessing DAB through?

REST, GraphQL

Relevant log output

No response

Code of Conduct

  • [X] I agree to follow this project's Code of Conduct

JerryNixon avatar Sep 04 '23 18:09 JerryNixon

I tried to extract the list into a table to help.

Status Property Path Description
⚠️ additionalProperties.version -
data-source.description Data source information
data-source.database-type.description Database used in the backend
data-source.connection-string.description Connection string for the selected database type
⚠️ data-source.options -
data-source-files.description Names of runtime configuration files referencing additional databases.
⚠️ data-source-files.default -
runtime.description Runtime configuration settings
runtime.rest.description Global REST endpoint configuration
⚠️ runtime.rest.path.default -
runtime.rest.enabled.description Allow enabling/disabling REST requests for all entities.
runtime.rest.request-body-strict.description Does not allow extraneous fields in request body when set to true.
runtime.graphql.description Global GraphQL endpoint configuration
⚠️ runtime.graphql.allow-introspection -
⚠️ runtime.graphql.path.default -
runtime.graphql.enabled.description Allow enabling/disabling GraphQL requests for all entities.
runtime.host.description Global hosting configuration
runtime.host.mode.description Set if running in Development or Production mode
runtime.host.cors.description Configure CORS
⚠️ runtime.host.cors.origins.default -
runtime.host.cors.allow-credentials.description Set value for Access-Control-Allow-Credentials header
runtime.host.authentication.description -
⚠️ runtime.host.authentication.jwt.audience -
⚠️ runtime.host.authentication.jwt.issuer -
entities.description Entities that will be exposed via REST and/or GraphQL
entities.source.description The object in the backend database that is mapped to the entity
⚠️ entities.rest.path -
⚠️ entities.rest.methods -
entities.rest.enabled.description Allow enabling/disabling REST requests this specific entity.
⚠️ entities.graphql.type -
⚠️ entities.graphql.operation -
entities.graphql.enabled.description Allow enabling/disabling GraphQL requests for this specific entity.
entities.mappings.description Define mappings between database fields and GraphQL and REST fields
⚠️ entities.relationships.cardinality -
⚠️ entities.relationships.target.entity -
⚠️ entities.relationships.source.fields -
⚠️ entities.relationships.target.fields -
entities.relationships.linking.object.description The database object used for supporting the M:N relationship
⚠️ entities.relationships.linking.source.fields -
⚠️ entities.relationships.linking.target.fields -
entities.permissions.description Permissions assigned to this object
⚠️ entities.permissions.role -
⚠️ entities.permissions.actions -
⚠️ $defs.singular-plural.singular -
⚠️ $defs.singular-plural.plural -

JerryNixon avatar Oct 11 '23 23:10 JerryNixon

Is this a json schema validation issue? or a necessary fix to address ease of use and make schema file more informative for json linters? I ask because @abhishekkumams has #1782 PR submitted to address json schema violations.

seantleonard avatar Oct 12 '23 19:10 seantleonard

https://github.com/Azure/data-api-builder/blob/main/schemas/dab.draft.schema.json

seantleonard avatar Feb 08 '24 19:02 seantleonard