Settings🔗

In this section, we'll cover the settings that can be used to customize Undine. Settings should be set in a dictionary named UNDINE in your settings file, unless otherwise specified. The settings can also be found in the settings file.

1
2
3
UNDINE = {
    # Settings go here
}
ADDITIONAL_VALIDATION_RULES

Type: list[type[ASTValidationRule]] | Default: []

Additional validation rules to use for validating the GraphQL schema. Values should be given as the dotted paths to the validation rules used.

ALLOW_DID_YOU_MEAN_SUGGESTIONS

Type: bool | Default: False

Whether to allow the 'did you mean' suggestions on error messages.

ALLOW_INTROSPECTION_QUERIES

Type bool | Default: False

Whether schema introspection queries are allowed or not. Should set this to True if using GraphiQL.

ASYNC

Type bool | Default: False

Whether to use async view for the GraphQL endpoint or not. Allows using async resolvers for Fields and Entrypoints. See Async Support for more information.

CALCULATION_ARGUMENT_EXTENSIONS_KEY

Type: str | Default: "undine_calculation_argument"

The key used to store a CalculationArgument in the extensions of the GraphQLArgument.

CAMEL_CASE_SCHEMA_FIELDS

Type: bool | Default: True

Should names be converted from 'snake_case' to 'camelCase' for the GraphQL schema? Conversion is not applied if schema_name is set manually.

CONNECTION_EXTENSIONS_KEY

Type: str | Default: "undine_connection"

The key used to store a Connection in the extensions of the GraphQLObjectType.

CONNECTION_INDEX_KEY

Type: str | Default: "_undine_pagination_index"

The key to which a nested connection's pagination indexes are annotated to.

CONNECTION_PAGE_SIZE

Type: int | Default: 100

The maximum number of items to return from a Connection at a time.

CONNECTION_START_INDEX_KEY

Type: str | Default: "_undine_pagination_start"

The key to which a nested connection's pagination start indexes are annotated to.

CONNECTION_STOP_INDEX_KEY

Type: str | Default: "_undine_pagination_stop"

The key to which a nested connection's pagination stop indexes are annotated to.

CONNECTION_TOTAL_COUNT_KEY

Type: str | Default: "_undine_pagination_total_count"

The key to which a nested connection's total counts are annotated to.

DIRECTIVE_ARGUMENT_EXTENSIONS_KEY

Type: str | Default: "undine_directive_argument"

The key used to store a DirectiveArgument in the extensions of the GraphQLArgument.

DIRECTIVE_EXTENSIONS_KEY

Type str | Default: "undine_directive"

The key used to store a Directive in the extensions of the GraphQLDirective.

DISABLE_ONLY_FIELDS_OPTIMIZATION

Type bool | Default: False

Disable optimizing fetched fields with queryset.only().

DOCSTRING_PARSER

Type type[DocstringParserProtocol] | Default: "undine.parsers.parse_docstring.RSTDocstringParser"

The docstring parser to use. Should be given as the dotted path to the docstring parser class.

ENTRYPOINT_EXTENSIONS_KEY

Type str | Default: "undine_entrypoint"

The key used to store an Entrypoint in the extensions of the GraphQLField.

ENTRYPOINT_LIMIT_PER_MODEL

Type int | Default: 100

Default number of objects that are fetched per model when fetching results in an abstract type (UnionType or InterfaceType) Entrypoint.

EXECUTION_CONTEXT_CLASS

Type type[UndineExecutionContext] | Default: "undine.execution.UndineExecutionContext"

GraphQL execution context class used by the schema. Should be given as the dotted path to the execution context class.

EXECUTION_HOOKS

Type: list[type[LifecycleHook]] | Default: []

Hooks to run during execution phase the GraphQL request. See Lifecycle Hooks for more information. Values should be given as the dotted paths to the lifecycle hooks used.

FIELD_EXTENSIONS_KEY

Type: str | Default: "undine_field"

The key used to store a Field in the extensions of the GraphQLField.

FILE_UPLOAD_ENABLED

Type: bool | Default: False

Whether file uploads are enabled. Should enable CSRF protection on the GraphiQL endpoint if enabled. See file uploads for more information.

FILTER_EXTENSIONS_KEY

Type: str | Default: "undine_filter"

The key used to store a Filter in the extensions of the GraphQLInputField.

FILTERSET_EXTENSIONS_KEY

Type: str | Default: "undine_filterset"

The key used to store a FilterSet in the extensions of the GraphQLInputObjectType.

GRAPHIQL_ENABLED

Type: bool | Default: False

Whether to enable GraphiQL. Should also set ALLOW_INTROSPECTION_QUERIES to True, so that GraphiQL can introspect the GraphQL schema.

GRAPHIQL_PLUGIN_EXPLORER_VERSION

Type: str | Default: "3.2.5"

Version of the plugin explorer to use for GraphiQL.

GRAPHIQL_REACT_VERSION

Type: str | Default: "18.3.1"

Version of React to use for GraphiQL.

GRAPHIQL_VERSION

Type: str | Default: "3.8.3"

Version of GraphiQL to use.

GRAPHQL_PATH

Type: str | Default: "graphql/"

The URL path where the GraphQL endpoint is located if it's included using path("", include("undine.http.urls")).

GRAPHQL_VIEW_NAME

Type: str | Default: "graphql"

The name given to the GraphQL view in Django's URL resolvers if it's included using path("", include("undine.http.urls")).

INPUT_EXTENSIONS_KEY

Type: str | Default: "undine_input"

The key used to store an Input in the extensions of the GraphQLInputField.

INTERFACE_FIELD_EXTENSIONS_KEY

Type: str | Default: "undine_interface_field"

The key used to store an InterfaceField in the extensions of the GraphQLField.

INTERFACE_TYPE_EXTENSIONS_KEY

Type: str | Default: "undine_interface"

The key used to store a InterfaceType in the extensions of the GraphQLInterfaceType.

MAX_ALLOWED_ALIASES

Type: int | Default: 15

The maximum number of aliases allowed in a single operation.

MAX_ALLOWED_DIRECTIVES

Type: int | Default: 50

The maximum number of directives allowed in a single operation.

MAX_ERRORS

Type: int | Default: 100

The maximum number of validation errors allowed in a GraphQL request before it is rejected, even if validation is still not complete.

MAX_FILTERS_PER_TYPE

Type: int | Default: 20

The maximum number of filters allowed to be used for filtering a single QueryType.

MAX_ORDERS_PER_TYPE

Type: int | Default: 10

The maximum number of orderings allowed to be used for ordering a single QueryType.

MAX_QUERY_COMPLEXITY

Type: int | Default: 10

Maximum query complexity that is allowed to be queried in a single operation.

MAX_TOKENS

Type int | Default: None

Maximum number of GraphQL document tokens the GraphQL parser will parse before it rejects a request. By default, this is set to None which means no limit.

MIDDLEWARE

Type: list[type[GraphQLFieldResolver]] | Default: []

Middleware to use during GraphQL field resolving. See Custom Middleware in the GraphQL-core documentation for more information.

MODELTRANSLATION_INCLUDE_TRANSLATABLE

Type: bool | Default: False

Whether to add translatable fields to the GraphQL schema when using django-modeltranslation. See the integration description for more information.

MODELTRANSLATION_INCLUDE_TRANSLATIONS

Type: bool | Default: True

Whether to add translation fields to the GraphQL schema when using django-modeltranslation. See the integration description for more information.

MUTATION_FULL_CLEAN

Type: bool | Default: True

Whether to run model.full_clean() when mutating a model. Turning this off can reduce the number of database queries during mutations, but may introduce issues that would be solved by running full model validation.

MUTATION_INSTANCE_LIMIT

Type: int | Default: 100

The maximum number of objects that can be mutated in a single mutation.

MUTATION_INPUT_DATA_KEY

Type: str | Default: "input"

The key that the input argument based on a MutationType is added to when said MutationType is used in Entrypoints.

MUTATION_TYPE_EXTENSIONS_KEY

Type: str | Default: "undine_mutation_type"

The key used to store a MutationType in the extensions of the GraphQLInputObjectType.

NO_ERROR_LOCATION

Type: bool | Default: False

Whether to remove error location information to GraphQL errors.

OPERATION_HOOKS

Type: list[type[LifecycleHook]] | Default: []

Hooks to run encompassing the entire GraphQL operation. See Lifecycle Hooks for more information. Values should be given as the dotted paths to the lifecycle hooks used.

OPTIMIZER_CLASS

Type: type[QueryOptimizer] | Default: "undine.optimizer.optimizer.QueryOptimizer"

The optimizer class to use for optimizing queries. Value should be given as the dotted path to the optimizer class.

ORDER_EXTENSIONS_KEY

Type: str | Default: "undine_order"

The key used to store an Order in the extensions of the GraphQLEnumValue.

ORDERSET_EXTENSIONS_KEY

Type: str | Default: "undine_orderset"

The key used to store a OrderSet in the extensions of the GraphQLEnumType.

PARSE_HOOKS

Type: list[type[LifecycleHook]] | Default: []

Hooks to run during parsing phase of a GraphQL request. See Lifecycle Hooks for more information. Values should be given as the dotted paths to the lifecycle hooks used.

PERSISTED_DOCUMENTS_ONLY

Type: bool | Default: False

Whether to only allow persisted documents to be executed in the GraphQL API.

PERSISTED_DOCUMENTS_PATH

Type: str | Default: "persisted-documents/"

The path where the persisted documents registration endpoint is located by default.

PERSISTED_DOCUMENTS_PERMISSION_CALLBACK

Type: PersistedDocumentsPermissionsCallback | Default: None

The function to use for permission checks for registration of persisted documents.

PERSISTED_DOCUMENTS_VIEW_NAME

Type: str | Default: "persisted_documents"

The name of given to the persisted documents registration view in the URLconf.

PREFETCH_HACK_CACHE_KEY

Type: str | Default: "_undine_prefetch_hack_cache"

The key to use for storing the prefetch hack cache in the queryset hints.

QUERY_TYPE_EXTENSIONS_KEY

Type: str | Default: "undine_query_type"

The key used to store a QueryType in the extensions of the GraphQLObjectType.

QUERY_TYPE_FILTER_INPUT_KEY

Type: str | Default: "filter"

The key that the input argument based on a FilterSet of a QueryType is added to when said QueryType is used in list Entrypoints or "to-many" related Fields.

QUERY_TYPE_ORDER_INPUT_KEY

Type: str | Default: "orderBy"

The key that the input argument based on an OrderSet of a QueryType is added to when said QueryType is used in list Entrypoints or "to-many" related Fields.

RESOLVER_ROOT_PARAM_NAME

Type: str | Default: "root"

The name of the root/parent parameter in Field/Entrypoint resolvers.

ROOT_TYPE_EXTENSIONS_KEY

Type: str | Default: "undine_root_type"

The key used to store a RootType in the extensions of the GraphQLObjectType.

ROOT_VALUE

Type: Any | Default: None

The root value for the GraphQL execution. Can be accessed by Entrypoint resolvers from the root argument.

SCALAR_EXTENSIONS_KEY

Type: str | Default: "undine_scalar"

The key used to store a Undine ScalarType in the extensions of the GraphQLScalarType.

SCHEMA

Type: GraphQLSchema | Default: "undine.settings.example_schema"

The file and variable where the GraphQL Schema for Undine is located. Value should be given as the dotted path, usually created using undine.schema.create_schema.

SCHEMA_DIRECTIVES_EXTENSIONS_KEY

Type: str | Default: "undine_schema_directives"

The key used to store the schema definition directives in the extensions of the GraphQLSchema.

SDL_PRINTER

Type: type[SDLPrinter] | Default: "undine.utils.graphql.sdl_printer.SDLPrinter"

The SDL printer to use. Value should be given as the dotted path to the SDL printer class.

TESTING_CLIENT_FULL_STACKTRACE

Type: bool | Default: False

Whether to include the full stacktrace in testing client instead of just the relevant frames when checking where SQL queries are made.

TOTAL_COUNT_PARAM_NAME

Type: str | Default: "totalCount"

The name of the parameter in a connection ObjectType for holding the count for the total number of items that can be queried from the connection.

UNDINE_PERSISTED_DOCUMENTS_MODEL

Type: type[Model] | Default: "undine.persisted_documents.models.PersistedDocument"

NOTE: This setting should be set in the top level of the settings file, not in the UNDINE dictionary!

The model to use for the PersistedDocument model. Works similarly to AUTH_USER_MODEL, so must be set before running migrations for the persisted documents app.

UNION_TYPE_EXTENSIONS_KEY

Type: str | Default: "undine_union_type"

The key used to store a Undine UnionType in the extensions of the GraphQLUnion.

VALIDATION_HOOKS

Type: list[type[LifecycleHook]] | Default: []

Hooks to run during validation the GraphQL request. See Lifecycle Hooks for more information. Values should be given as the dotted paths to the lifecycle hooks used.