Skip to main content
Version: v3.x

Compatibility Config

Introduction

The CompatibilityConfig object is a metadata object that defines the compatibility configuration of the Hasura metadata.

How CompatibilityConfig works

Lifecycle

By default, all projects are created with a default CompatibilityConfig object in the globals subgraph. It can be defined in any subgraph of your choice, but only once across your supergraph.

The date field in the CompatibilityConfig object specifies the date after which any backwards incompatible changes made to Hasura DDN won't impact the metadata.

Examples

Require unique command GraphQL names

Date: 2024-10-07

Description: When enabled, raise an error when there is a conflict with a GraphQL root field or GraphQL type name that is already in use. Before this, the command would be silently dropped from the GraphQL schema.

Propagate boolean expression deprecation status

Date: 2024-09-26

Description: Enables propagating deprecated status for relationship fields to boolean expressions that use them. The default GraphQL introspection behavior is to hide such fields from the schema, so this behavior is opt-in to avoid breakage.

Disallow scalar types names conflicting with inbuilt types

Date: 2024-09-26

Description: When enabled, defining a ScalarType metadata type that conflicts with any of the built-in type names (ID, Int, String, Boolean, Float) now raises an error that halts the build.

Require nested array filtering capability

Date: 2024-09-18

Description: When enabled, defining a nested array field against a model whose underlying data connector does not have the query.exists.nested_collections capability defined will raise an error that halts the build.

Bypass relation_comparisons NDC Capability

Date: 2024-09-03

Description: Enables bypassing the relation_comparisons NDC capability for relationship predicates. This allows you to use relationships in boolean expressions even if the data connector lacks compatibility. When the capability is available, relationship predicates are resolved directly within the native data connector for more efficient processing. If not, the predicates are handled at the API layer.

Require GraphQL Config

Date: 2024-06-30

Description: Enforce the need for GraphQL Config.


Metadata structure

v2_CompatibilityConfig

The compatibility configuration of the Hasura metadata.

KeyValueRequiredDescription
kindCompatibilityConfigtrue
datestringtrueAny backwards incompatible changes made to Hasura DDN after this date won't impact the metadata.
Loading...