diff --git a/website/src/docs/hotchocolate/v13/api-reference/apollo-federation.md b/website/src/docs/hotchocolate/v13/api-reference/apollo-federation.md
index 3a2e6c01d90..e878348896d 100644
--- a/website/src/docs/hotchocolate/v13/api-reference/apollo-federation.md
+++ b/website/src/docs/hotchocolate/v13/api-reference/apollo-federation.md
@@ -145,7 +145,7 @@ Next, we'll need to define an [entity reference resolver](https://www.apollograp
-In an annotation-based implementation, a reference resolver will work just like a [regular resolver](/docs/hotchocolate/v12/fetching-data/resolvers) with some key differences:
+In an annotation-based implementation, a reference resolver will work just like a [regular resolver](/docs/hotchocolate/v13/fetching-data/resolvers) with some key differences:
1. It must be annotated with the `[ReferenceResolver]` attribute
1. It must be a `public static` method _within_ the type it is resolving
@@ -208,7 +208,7 @@ public class Product
-We'll now chain a `ResolveReferenceWith()` method call off of the `Key()` method call from the previous step. This will create a [resolver](/docs/hotchocolate/v12/fetching-data/resolvers) that the Hot Chocolate engine can invoke.
+We'll now chain a `ResolveReferenceWith()` method call off of the `Key()` method call from the previous step. This will create a [resolver](/docs/hotchocolate/v13/fetching-data/resolvers) that the Hot Chocolate engine can invoke.
```csharp
public class Product
@@ -282,7 +282,7 @@ public class ProductType : ObjectType
> ### A note about reference resolvers
>
-> It's recommended to use a [dataloader](/docs/hotchocolate/v12/fetching-data/dataloader) to fetch the data in a reference resolver. This helps the API avoid [an N+1 problem](https://www.apollographql.com/docs/federation/entities-advanced#handling-the-n1-problem) when a query resolves multiple items from a given subgraph.
+> It's recommended to use a [dataloader](/docs/hotchocolate/v13/fetching-data/dataloader) to fetch the data in a reference resolver. This helps the API avoid [an N+1 problem](https://www.apollographql.com/docs/federation/entities-advanced#handling-the-n1-problem) when a query resolves multiple items from a given subgraph.
## Register the entity
@@ -545,7 +545,7 @@ As a reminder, you can create and configure a supergraph by following either the
## Contributing fields through resolvers
-Now that our new subgraph has the `Product` reference we can [contribute additional fields to the type](https://www.apollographql.com/docs/federation/entities#contributing-entity-fields). Similar to other types in Hot Chocolate, you can create new fields by defining different method or property resolvers. For a full set of details and examples on creating resolvers, you can read our [documentation on resolvers](/docs/hotchocolate/v12/fetching-data/resolvers).
+Now that our new subgraph has the `Product` reference we can [contribute additional fields to the type](https://www.apollographql.com/docs/federation/entities#contributing-entity-fields). Similar to other types in Hot Chocolate, you can create new fields by defining different method or property resolvers. For a full set of details and examples on creating resolvers, you can read our [documentation on resolvers](/docs/hotchocolate/v13/fetching-data/resolvers).
For now, we'll focus on giving our supergraph the ability to retrieve all reviews for a given product by adding a `reviews: [Review!]!` property to the type.
diff --git a/website/src/docs/hotchocolate/v14/api-reference/apollo-federation.md b/website/src/docs/hotchocolate/v14/api-reference/apollo-federation.md
index 3a2e6c01d90..a933a2e7a45 100644
--- a/website/src/docs/hotchocolate/v14/api-reference/apollo-federation.md
+++ b/website/src/docs/hotchocolate/v14/api-reference/apollo-federation.md
@@ -145,7 +145,7 @@ Next, we'll need to define an [entity reference resolver](https://www.apollograp
-In an annotation-based implementation, a reference resolver will work just like a [regular resolver](/docs/hotchocolate/v12/fetching-data/resolvers) with some key differences:
+In an annotation-based implementation, a reference resolver will work just like a [regular resolver](/docs/hotchocolate/v14/fetching-data/resolvers) with some key differences:
1. It must be annotated with the `[ReferenceResolver]` attribute
1. It must be a `public static` method _within_ the type it is resolving
@@ -208,7 +208,7 @@ public class Product
-We'll now chain a `ResolveReferenceWith()` method call off of the `Key()` method call from the previous step. This will create a [resolver](/docs/hotchocolate/v12/fetching-data/resolvers) that the Hot Chocolate engine can invoke.
+We'll now chain a `ResolveReferenceWith()` method call off of the `Key()` method call from the previous step. This will create a [resolver](/docs/hotchocolate/v14/fetching-data/resolvers) that the Hot Chocolate engine can invoke.
```csharp
public class Product
@@ -282,7 +282,7 @@ public class ProductType : ObjectType
> ### A note about reference resolvers
>
-> It's recommended to use a [dataloader](/docs/hotchocolate/v12/fetching-data/dataloader) to fetch the data in a reference resolver. This helps the API avoid [an N+1 problem](https://www.apollographql.com/docs/federation/entities-advanced#handling-the-n1-problem) when a query resolves multiple items from a given subgraph.
+> It's recommended to use a [dataloader](/docs/hotchocolate/v14/fetching-data/dataloader) to fetch the data in a reference resolver. This helps the API avoid [an N+1 problem](https://www.apollographql.com/docs/federation/entities-advanced#handling-the-n1-problem) when a query resolves multiple items from a given subgraph.
## Register the entity
@@ -545,7 +545,7 @@ As a reminder, you can create and configure a supergraph by following either the
## Contributing fields through resolvers
-Now that our new subgraph has the `Product` reference we can [contribute additional fields to the type](https://www.apollographql.com/docs/federation/entities#contributing-entity-fields). Similar to other types in Hot Chocolate, you can create new fields by defining different method or property resolvers. For a full set of details and examples on creating resolvers, you can read our [documentation on resolvers](/docs/hotchocolate/v12/fetching-data/resolvers).
+Now that our new subgraph has the `Product` reference we can [contribute additional fields to the type](https://www.apollographql.com/docs/federation/entities#contributing-entity-fields). Similar to other types in Hot Chocolate, you can create new fields by defining different method or property resolvers. For a full set of details and examples on creating resolvers, you can read our [documentation on resolvers](/docs/hotchocolate/v14/fetching-data/resolvers).
For now, we'll focus on giving our supergraph the ability to retrieve all reviews for a given product by adding a `reviews: [Review!]!` property to the type.
diff --git a/website/src/docs/hotchocolate/v14/api-reference/error-filter.md b/website/src/docs/hotchocolate/v14/api-reference/error-filter.md
index 37ffe3e64b8..b715cd0cc05 100644
--- a/website/src/docs/hotchocolate/v14/api-reference/error-filter.md
+++ b/website/src/docs/hotchocolate/v14/api-reference/error-filter.md
@@ -8,7 +8,7 @@ Moreover, you can throw a `QueryException` that will be be caught by the query e
One further way to raise an error are non-terminating field errors. This can be raised by using `IResolverContext.ReportError`. So, with this you can provide a result and raise an error for your current field.
-> If you do want to log errors head over to our diagnostic source [documentation](/docs/hotchocolate/v13/server/instrumentation) and see how you can hook up your logging framework of choice to it.
+> If you do want to log errors head over to our diagnostic source [documentation](/docs/hotchocolate/v14/server/instrumentation) and see how you can hook up your logging framework of choice to it.
# Error Builder
diff --git a/website/src/docs/hotchocolate/v14/api-reference/extending-filtering.md b/website/src/docs/hotchocolate/v14/api-reference/extending-filtering.md
index 9d2be90c102..57d8894cd08 100644
--- a/website/src/docs/hotchocolate/v14/api-reference/extending-filtering.md
+++ b/website/src/docs/hotchocolate/v14/api-reference/extending-filtering.md
@@ -72,7 +72,7 @@ This convention is also configurable with a fluent interface, so in most cases y
## Descriptor
Most of the capabilities of the descriptor are already documented under `Fetching Data -> Filtering`.
-If you have not done this already, it is now the right time to head over to [Filtering](/docs/hotchocolate/v13/fetching-data/filtering) and read the parts about the `FilterConventions`
+If you have not done this already, it is now the right time to head over to [Filtering](/docs/hotchocolate/v14/fetching-data/filtering) and read the parts about the `FilterConventions`
There are two things on this descriptor that are not documented in `Fetching Data`:
@@ -177,7 +177,7 @@ In case, of MongoDB this is a `FilterDefinition`. Provider, visitor context and
To inspect and analyze the input object, the provider uses a visitor.
-What a visitor is and how you can write you own visitor is explained [here](/docs/hotchocolate/v13/api-reference/visitors)
+What a visitor is and how you can write you own visitor is explained [here](/docs/hotchocolate/v14/api-reference/visitors)
Visitors are a powerful yet complex concept, we tried our best to abstract it away.
For most cases, you will not need to create a custom visitor.
diff --git a/website/src/docs/hotchocolate/v14/defining-a-schema/arguments.md b/website/src/docs/hotchocolate/v14/defining-a-schema/arguments.md
index 7bc5a0a4e74..939c2555e6d 100644
--- a/website/src/docs/hotchocolate/v14/defining-a-schema/arguments.md
+++ b/website/src/docs/hotchocolate/v14/defining-a-schema/arguments.md
@@ -117,6 +117,6 @@ services
-Arguments can be made required by using the non-null type. Learn more about [non-null](/docs/hotchocolate/v13/defining-a-schema/non-null)
+Arguments can be made required by using the non-null type. Learn more about [non-null](/docs/hotchocolate/v14/defining-a-schema/non-null)
-If we need to provide complex objects as arguments, we can use [input object types](/docs/hotchocolate/v13/defining-a-schema/input-object-types).
+If we need to provide complex objects as arguments, we can use [input object types](/docs/hotchocolate/v14/defining-a-schema/input-object-types).
diff --git a/website/src/docs/hotchocolate/v14/defining-a-schema/enums.md b/website/src/docs/hotchocolate/v14/defining-a-schema/enums.md
index a3da8f83e95..97216193ffc 100644
--- a/website/src/docs/hotchocolate/v14/defining-a-schema/enums.md
+++ b/website/src/docs/hotchocolate/v14/defining-a-schema/enums.md
@@ -2,7 +2,7 @@
title: "Enums"
---
-An Enum is a special kind of [scalar](/docs/hotchocolate/v13/defining-a-schema/scalars) that is restricted to a particular set of allowed values. It can be used as both an input and an output type.
+An Enum is a special kind of [scalar](/docs/hotchocolate/v14/defining-a-schema/scalars) that is restricted to a particular set of allowed values. It can be used as both an input and an output type.
```sdl
enum UserRole {
@@ -137,7 +137,7 @@ Since there could be multiple enum types inheriting from `EnumType`, b
**Therefore it's important to note that Code-first enum types are not automatically inferred. They need to be explicitly specified or registered.**
-We can either [explicitly specify the type on a per-resolver basis](/docs/hotchocolate/v13/defining-a-schema/object-types#explicit-types) or we can register the type once globally:
+We can either [explicitly specify the type on a per-resolver basis](/docs/hotchocolate/v14/defining-a-schema/object-types#explicit-types) or we can register the type once globally:
```csharp
public class Startup
diff --git a/website/src/docs/hotchocolate/v14/defining-a-schema/index.md b/website/src/docs/hotchocolate/v14/defining-a-schema/index.md
index e569e6497a4..9c01ba6c2b2 100644
--- a/website/src/docs/hotchocolate/v14/defining-a-schema/index.md
+++ b/website/src/docs/hotchocolate/v14/defining-a-schema/index.md
@@ -8,25 +8,25 @@ In this section we will learn everything that is needed to build an expressive G
First we will look at the three root types, often called _Operations_, that represent entry points to our schema:
-- Queries allow us to _query_ our graph and retrieve data in a readonly manner.
[Learn more about queries](/docs/hotchocolate/v13/defining-a-schema/queries)
+- Queries allow us to _query_ our graph and retrieve data in a readonly manner.
[Learn more about queries](/docs/hotchocolate/v14/defining-a-schema/queries)
-- Mutations allow us to _mutate_ our graph entities in the form of adding, removing or updating entities.
[Learn more about mutations](/docs/hotchocolate/v13/defining-a-schema/mutations)
+- Mutations allow us to _mutate_ our graph entities in the form of adding, removing or updating entities.
[Learn more about mutations](/docs/hotchocolate/v14/defining-a-schema/mutations)
-- Subscriptions allow us to _subscribe_ to events in our system and be notified in real-time of their occurrence.
[Learn more about subscriptions](/docs/hotchocolate/v13/defining-a-schema/subscriptions)
+- Subscriptions allow us to _subscribe_ to events in our system and be notified in real-time of their occurrence.
[Learn more about subscriptions](/docs/hotchocolate/v14/defining-a-schema/subscriptions)
# Types
Each GraphQL schema is made up of two basic building blocks:
-- Object types contain fields and describe our entities.
[Learn more about object types](/docs/hotchocolate/v13/defining-a-schema/object-types)
+- Object types contain fields and describe our entities.
[Learn more about object types](/docs/hotchocolate/v14/defining-a-schema/object-types)
-- Scalars are the primitives of our GraphQL schema: `String`, `Int`, etc.
We can also define custom scalars to more precisely describe our business domain.
[Learn more about scalars](/docs/hotchocolate/v13/defining-a-schema/scalars)
+- Scalars are the primitives of our GraphQL schema: `String`, `Int`, etc.
We can also define custom scalars to more precisely describe our business domain.
[Learn more about scalars](/docs/hotchocolate/v14/defining-a-schema/scalars)
There are also more advanced types:
-- Enums are a special kind of scalar, restricted to a particular set of allowed values.
[Learn more about enums](/docs/hotchocolate/v13/defining-a-schema/enums)
-- Interfaces represent a shared contract that other types can implement.
[Learn more about interfaces](/docs/hotchocolate/v13/defining-a-schema/interfaces)
-- Unions represent a set of object types, without the need for a shared contract.
[Learn more about unions](/docs/hotchocolate/v13/defining-a-schema/unions).
+- Enums are a special kind of scalar, restricted to a particular set of allowed values.
[Learn more about enums](/docs/hotchocolate/v14/defining-a-schema/enums)
+- Interfaces represent a shared contract that other types can implement.
[Learn more about interfaces](/docs/hotchocolate/v14/defining-a-schema/interfaces)
+- Unions represent a set of object types, without the need for a shared contract.
[Learn more about unions](/docs/hotchocolate/v14/defining-a-schema/unions).
# Type Modifiers
@@ -34,21 +34,21 @@ Besides regular types, like scalars and object types, there are also _type modif
A non-null field for example indicates that a client can always expect a non-null value to be returned from the field.
-[Learn more about non-null](/docs/hotchocolate/v13/defining-a-schema/non-null)
+[Learn more about non-null](/docs/hotchocolate/v14/defining-a-schema/non-null)
List fields indicate to a client that the field will return a list in the specified shape.
-[Learn more about lists](/docs/hotchocolate/v13/defining-a-schema/lists)
+[Learn more about lists](/docs/hotchocolate/v14/defining-a-schema/lists)
# Arguments
We can pass arguments to individual fields on an object type and access their values inside the field's resolver.
-[Learn more about arguments](/docs/hotchocolate/v13/defining-a-schema/arguments)
+[Learn more about arguments](/docs/hotchocolate/v14/defining-a-schema/arguments)
Nested object types can also be used as arguments by declaring so called input object types. These are most commonly used when passing a payload to a mutation.
-[Learn more about input object types](/docs/hotchocolate/v13/defining-a-schema/input-object-types)
+[Learn more about input object types](/docs/hotchocolate/v14/defining-a-schema/input-object-types)
# Extending Types
@@ -56,7 +56,7 @@ Hot Chocolate allows us to extend existing types, helping us keep our code organ
Rather than adding more and more fields to the Query type in the same class for instance, we can _extend_ the Query type with a new field from another location in our codebase where that field logically should live.
-[Learn more about extending types](/docs/hotchocolate/v13/defining-a-schema/extending-types)
+[Learn more about extending types](/docs/hotchocolate/v14/defining-a-schema/extending-types)
# Directives
@@ -64,21 +64,21 @@ Directives allow us to decorate parts of our GraphQL schema with additional conf
This configuration can be used as metadata for client tools or alternate our GraphQL server's runtime execution and type validation behavior.
-[Learn more about directives](/docs/hotchocolate/v13/defining-a-schema/directives)
+[Learn more about directives](/docs/hotchocolate/v14/defining-a-schema/directives)
# Schema evolution
As our data graph and number of developers/clients grows, we need to ensure that the graph is understood by everyone. Therefore, our schema should expose as much information to consumers of our API as possible.
-[Learn more about schema documentation](/docs/hotchocolate/v13/defining-a-schema/documentation)
+[Learn more about schema documentation](/docs/hotchocolate/v14/defining-a-schema/documentation)
-[Learn more about versioning](/docs/hotchocolate/v13/defining-a-schema/versioning)
+[Learn more about versioning](/docs/hotchocolate/v14/defining-a-schema/versioning)
# Relay
[Relay](https://relay.dev) proposes some schema design principles for GraphQL servers in order to more efficiently fetch, refetch and cache entities on the client. Since these principles make for a better schema, we encourage all users, not only those of Relay, to consider these principles.
-[Learn more about Relay-compatible schema design](/docs/hotchocolate/v13/defining-a-schema/relay)
+[Learn more about Relay-compatible schema design](/docs/hotchocolate/v14/defining-a-schema/relay)
# Automatic type registration
diff --git a/website/src/docs/hotchocolate/v14/defining-a-schema/input-object-types.md b/website/src/docs/hotchocolate/v14/defining-a-schema/input-object-types.md
index 696a671b7ed..86727c61c21 100644
--- a/website/src/docs/hotchocolate/v14/defining-a-schema/input-object-types.md
+++ b/website/src/docs/hotchocolate/v14/defining-a-schema/input-object-types.md
@@ -2,9 +2,9 @@
title: "Input Object Types"
---
-We already looked at [arguments](/docs/hotchocolate/v13/defining-a-schema/arguments), which allow us to use simple [scalars](/docs/hotchocolate/v13/defining-a-schema/scalars) like `String` to pass data into a field. GraphQL defines input object types to allow us to use objects as arguments on our fields.
+We already looked at [arguments](/docs/hotchocolate/v14/defining-a-schema/arguments), which allow us to use simple [scalars](/docs/hotchocolate/v14/defining-a-schema/scalars) like `String` to pass data into a field. GraphQL defines input object types to allow us to use objects as arguments on our fields.
-Input object type definitions differ from [object types](/docs/hotchocolate/v13/defining-a-schema/object-types) only in the used keyword and in that their fields can not have arguments.
+Input object type definitions differ from [object types](/docs/hotchocolate/v14/defining-a-schema/object-types) only in the used keyword and in that their fields can not have arguments.
```sdl
input BookInput {
@@ -119,7 +119,7 @@ public class MutationType : ObjectType
The `IInputTypeDescriptor` is really similar to the `IObjectTypeDescriptor` and provides almost the same capabilities.
-[Learn more about object types](/docs/hotchocolate/v13/defining-a-schema/object-types)
+[Learn more about object types](/docs/hotchocolate/v14/defining-a-schema/object-types)
diff --git a/website/src/docs/hotchocolate/v14/defining-a-schema/mutations.md b/website/src/docs/hotchocolate/v14/defining-a-schema/mutations.md
index 791a6192d4c..199b7ebd383 100644
--- a/website/src/docs/hotchocolate/v14/defining-a-schema/mutations.md
+++ b/website/src/docs/hotchocolate/v14/defining-a-schema/mutations.md
@@ -137,11 +137,11 @@ public class Startup
> Warning: Only **one** mutation type can be registered using `AddMutationType()`. If we want to split up our mutation type into multiple classes, we can do so using type extensions.
>
-> [Learn more about extending types](/docs/hotchocolate/v13/defining-a-schema/extending-types)
+> [Learn more about extending types](/docs/hotchocolate/v14/defining-a-schema/extending-types)
A mutation type is just a regular object type, so everything that applies to an object type also applies to the mutation type (this is true for all root types).
-[Learn more about object types](/docs/hotchocolate/v13/defining-a-schema/object-types)
+[Learn more about object types](/docs/hotchocolate/v14/defining-a-schema/object-types)
# Transactions
diff --git a/website/src/docs/hotchocolate/v14/defining-a-schema/object-types.md b/website/src/docs/hotchocolate/v14/defining-a-schema/object-types.md
index fde137e8711..8e9731cd373 100644
--- a/website/src/docs/hotchocolate/v14/defining-a-schema/object-types.md
+++ b/website/src/docs/hotchocolate/v14/defining-a-schema/object-types.md
@@ -405,11 +405,11 @@ public class Startup
What we have just created is a resolver. Hot Chocolate automatically creates resolvers for our properties, but we can also define them ourselves.
-[Learn more about resolvers](/docs/hotchocolate/v13/fetching-data/resolvers)
+[Learn more about resolvers](/docs/hotchocolate/v14/fetching-data/resolvers)
# Generics
-> Note: Read about [interfaces](/docs/hotchocolate/v13/defining-a-schema/interfaces) and [unions](/docs/hotchocolate/v13/defining-a-schema/unions) before resorting to generic object types.
+> Note: Read about [interfaces](/docs/hotchocolate/v14/defining-a-schema/interfaces) and [unions](/docs/hotchocolate/v14/defining-a-schema/unions) before resorting to generic object types.
In the Code-first approach we can define generic object types.
diff --git a/website/src/docs/hotchocolate/v14/defining-a-schema/queries.md b/website/src/docs/hotchocolate/v14/defining-a-schema/queries.md
index 9826e15e863..af501033556 100644
--- a/website/src/docs/hotchocolate/v14/defining-a-schema/queries.md
+++ b/website/src/docs/hotchocolate/v14/defining-a-schema/queries.md
@@ -140,8 +140,8 @@ public class Startup
> Warning: Only **one** query type can be registered using `AddQueryType()`. If we want to split up our query type into multiple classes, we can do so using type extensions.
>
-> [Learn more about extending types](/docs/hotchocolate/v13/defining-a-schema/extending-types)
+> [Learn more about extending types](/docs/hotchocolate/v14/defining-a-schema/extending-types)
A query type is just a regular object type, so everything that applies to an object type also applies to the query type (this is true for all root types).
-[Learn more about object types](/docs/hotchocolate/v13/defining-a-schema/object-types)
+[Learn more about object types](/docs/hotchocolate/v14/defining-a-schema/object-types)
diff --git a/website/src/docs/hotchocolate/v14/defining-a-schema/relay.md b/website/src/docs/hotchocolate/v14/defining-a-schema/relay.md
index 57cd4c617e8..81fe89792aa 100644
--- a/website/src/docs/hotchocolate/v14/defining-a-schema/relay.md
+++ b/website/src/docs/hotchocolate/v14/defining-a-schema/relay.md
@@ -84,7 +84,7 @@ The approach of either Annotation-based or Code-first can be used in conjunction
The type of fields specified as `ID` is also automatically rewritten to the ID scalar.
-[Learn more about the ID scalar](/docs/hotchocolate/v13/defining-a-schema/scalars#id)
+[Learn more about the ID scalar](/docs/hotchocolate/v14/defining-a-schema/scalars#id)
## Usage in Input Types
@@ -186,7 +186,7 @@ public class Query
The `Serialize()` method takes the schema name as a first argument, followed by the type name and lastly the actual Id.
-[Learn more about accessing services](/docs/hotchocolate/v13/fetching-data/resolvers#injecting-services)
+[Learn more about accessing services](/docs/hotchocolate/v14/fetching-data/resolvers#injecting-services)
# Complex Ids
@@ -357,7 +357,7 @@ If we need to influence the global identifier generation, we can annotate the `I
public string Id { get; set; }
```
-If the `Id` property of our class is not called `id`, we can either [rename it](/docs/hotchocolate/v13/defining-a-schema/object-types#naming) or specify the name of the property that should be the `id` field through the `[Node]` attribute. Hot Chocolate will then automatically rename this property to `id` in the schema to properly implement the contract of the `Node` interface.
+If the `Id` property of our class is not called `id`, we can either [rename it](/docs/hotchocolate/v14/defining-a-schema/object-types#naming) or specify the name of the property that should be the `id` field through the `[Node]` attribute. Hot Chocolate will then automatically rename this property to `id` in the schema to properly implement the contract of the `Node` interface.
```csharp
[Node(IdField = nameof(ProductId))]
@@ -412,7 +412,7 @@ public class ProductExtensions
}
```
-[Learn more about extending types](/docs/hotchocolate/v13/defining-a-schema/extending-types)
+[Learn more about extending types](/docs/hotchocolate/v14/defining-a-schema/extending-types)
@@ -449,7 +449,7 @@ public class ProductType : ObjectType
> Warning: When using middleware such as `UseDbContext` it needs to be chained after the `ResolveNode` call. The order of middleware still matters.
-If the `Id` property of our class is not called `id`, we can either [rename it](/docs/hotchocolate/v13/defining-a-schema/object-types#naming) or specify it through the `IdField` method on the `IObjectTypeDescriptor`. Hot Chocolate will then automatically rename this property to `id` in the schema to properly implement the contract of the `Node` interface.
+If the `Id` property of our class is not called `id`, we can either [rename it](/docs/hotchocolate/v14/defining-a-schema/object-types#naming) or specify it through the `IdField` method on the `IObjectTypeDescriptor`. Hot Chocolate will then automatically rename this property to `id` in the schema to properly implement the contract of the `Node` interface.
```csharp
public class Product
@@ -506,7 +506,7 @@ The approach of either Annotation-based or Code-first can be used in conjunction
Since node resolvers resolve entities by their Id, they are the perfect place to start utilizing DataLoaders.
-[Learn more about DataLoaders](/docs/hotchocolate/v13/fetching-data/dataloader)
+[Learn more about DataLoaders](/docs/hotchocolate/v14/fetching-data/dataloader)
# Connections
@@ -536,7 +536,7 @@ type PageInfo {
}
```
-[Learn more about Connections](/docs/hotchocolate/v13/fetching-data/pagination#connections)
+[Learn more about Connections](/docs/hotchocolate/v14/fetching-data/pagination#connections)
# Query field in Mutation payloads
diff --git a/website/src/docs/hotchocolate/v14/defining-a-schema/scalars.md b/website/src/docs/hotchocolate/v14/defining-a-schema/scalars.md
index 04ea19b1a1e..c1586561052 100644
--- a/website/src/docs/hotchocolate/v14/defining-a-schema/scalars.md
+++ b/website/src/docs/hotchocolate/v14/defining-a-schema/scalars.md
@@ -70,7 +70,7 @@ type Product {
This scalar is used to facilitate technology-specific Ids, like `int`, `string` or `Guid`.
-It is **not** automatically inferred and the `IdType` needs to be [explicitly specified](/docs/hotchocolate/v13/defining-a-schema/object-types#explicit-types).
+It is **not** automatically inferred and the `IdType` needs to be [explicitly specified](/docs/hotchocolate/v14/defining-a-schema/object-types#explicit-types).
`ID` values are always represented as a [String](#string) in client-server communication, but can be coerced to their expected type on the server.
@@ -349,7 +349,7 @@ Most of these scalars are built on top of native .NET types. An Email Address fo
public string GetEmail() => "test@example.com";
```
-[Learn more about explicitly specifying GraphQL types](/docs/hotchocolate/v13/defining-a-schema/object-types#explicit-types)
+[Learn more about explicitly specifying GraphQL types](/docs/hotchocolate/v14/defining-a-schema/object-types#explicit-types)
## NodaTime
diff --git a/website/src/docs/hotchocolate/v14/defining-a-schema/subscriptions.md b/website/src/docs/hotchocolate/v14/defining-a-schema/subscriptions.md
index e467958d429..9951bdaf8c7 100644
--- a/website/src/docs/hotchocolate/v14/defining-a-schema/subscriptions.md
+++ b/website/src/docs/hotchocolate/v14/defining-a-schema/subscriptions.md
@@ -165,11 +165,11 @@ public class Startup
> Warning: Only **one** subscription type can be registered using `AddSubscriptionType()`. If we want to split up our subscription type into multiple classes, we can do so using type extensions.
>
-> [Learn more about extending types](/docs/hotchocolate/v13/defining-a-schema/extending-types)
+> [Learn more about extending types](/docs/hotchocolate/v14/defining-a-schema/extending-types)
A subscription type is just a regular object type, so everything that applies to an object type also applies to the subscription type (this is true for all all root types).
-[Learn more about object types](/docs/hotchocolate/v13/defining-a-schema/object-types)
+[Learn more about object types](/docs/hotchocolate/v14/defining-a-schema/object-types)
# Transport
diff --git a/website/src/docs/hotchocolate/v14/defining-a-schema/unions.md b/website/src/docs/hotchocolate/v14/defining-a-schema/unions.md
index aec07cd801a..a692f88aa42 100644
--- a/website/src/docs/hotchocolate/v14/defining-a-schema/unions.md
+++ b/website/src/docs/hotchocolate/v14/defining-a-schema/unions.md
@@ -2,7 +2,7 @@
title: "Unions"
---
-A union type represents a set of object types. It is very similar to an [interface](/docs/hotchocolate/v13/defining-a-schema/interfaces), except that there is no requirement for common fields between the specified types.
+A union type represents a set of object types. It is very similar to an [interface](/docs/hotchocolate/v14/defining-a-schema/interfaces), except that there is no requirement for common fields between the specified types.
```sdl
type TextContent {
diff --git a/website/src/docs/hotchocolate/v14/execution-engine/index.md b/website/src/docs/hotchocolate/v14/execution-engine/index.md
index aa0e1792473..286bfdbd297 100644
--- a/website/src/docs/hotchocolate/v14/execution-engine/index.md
+++ b/website/src/docs/hotchocolate/v14/execution-engine/index.md
@@ -13,7 +13,7 @@ The GraphQL execution is abstracted into a request pipeline composed of many req
Field middleware allows us to create reusable logic that is run before or after a resolver. It also allows us to access or even modify the result produced by a resolver.
-[Learn more about field middleware](/docs/hotchocolate/v13/execution-engine/field-middleware)
+[Learn more about field middleware](/docs/hotchocolate/v14/execution-engine/field-middleware)
# Resolver Compiler
diff --git a/website/src/docs/hotchocolate/v14/fetching-data/fetching-from-databases.md b/website/src/docs/hotchocolate/v14/fetching-data/fetching-from-databases.md
index 151fc5d9b82..8907928ae56 100644
--- a/website/src/docs/hotchocolate/v14/fetching-data/fetching-from-databases.md
+++ b/website/src/docs/hotchocolate/v14/fetching-data/fetching-from-databases.md
@@ -5,7 +5,7 @@ title: "Fetching from Databases"
In this section, you find a simple example on how you can fetch data from a database and expose it as a GraphQL API.
**Hot Chocolate is not bound to a specific database, pattern or architecture.**
-[We do have a few integrations](/docs/hotchocolate/v13/integrations), that help with a variety of databases, though these are just additions on top of HotChocolate.
+[We do have a few integrations](/docs/hotchocolate/v14/integrations), that help with a variety of databases, though these are just additions on top of HotChocolate.
You can couple your business logic close to the GraphQL server, or cleanly decouple your domain layer from the GraphQL layer over abstractions.
The GraphQL server only knows its schema, types and resolvers, what you do in these resolvers and what types you expose, is up to you.
diff --git a/website/src/docs/hotchocolate/v14/fetching-data/index.md b/website/src/docs/hotchocolate/v14/fetching-data/index.md
index 43f217c2ef9..edf7a614e4a 100644
--- a/website/src/docs/hotchocolate/v14/fetching-data/index.md
+++ b/website/src/docs/hotchocolate/v14/fetching-data/index.md
@@ -8,37 +8,37 @@ In this section we will learn everything about fetching data with Hot Chocolate.
Resolvers are the main building blocks when it comes to fetching data. Every field in our GraphQL schema is backed by such a resolver function, responsible for returning the field's value. Since a resolver is just a function, we can use it to retrieve data from a database, a REST service, or any other data source as needed.
-[Learn more about resolvers](/docs/hotchocolate/v13/fetching-data/resolvers)
+[Learn more about resolvers](/docs/hotchocolate/v14/fetching-data/resolvers)
Even though we can connect Hot Chocolate to any data source, most of the time it will be either a database or a REST service.
-[Learn how to fetch data from a database](/docs/hotchocolate/v13/fetching-data/fetching-from-databases)
+[Learn how to fetch data from a database](/docs/hotchocolate/v14/fetching-data/fetching-from-databases)
-[Learn how to fetch data from a REST service](/docs/hotchocolate/v13/fetching-data/fetching-from-rest)
+[Learn how to fetch data from a REST service](/docs/hotchocolate/v14/fetching-data/fetching-from-rest)
# DataLoader
DataLoaders provide a way to deduplicate and batch requests to data sources. They can significantly improve the performance of our queries and ease the load on our data sources.
-[Learn more about DataLoaders](/docs/hotchocolate/v13/fetching-data/dataloader)
+[Learn more about DataLoaders](/docs/hotchocolate/v14/fetching-data/dataloader)
# Pagination
Hot Chocolate provides pagination capabilities out of the box. They allow us to expose pagination in a standardized way and can even take care of crafting the necessary pagination queries to our databases.
-[Learn more about pagination](/docs/hotchocolate/v13/fetching-data/pagination)
+[Learn more about pagination](/docs/hotchocolate/v14/fetching-data/pagination)
# Filtering
When returning a list of entities, we often need to filter them using operations like `equals`, `contains`, `startsWith`, etc. Hot Chocolate takes away a lot of the boilerplate, by handling the generation of necessary input types and even translating the applied filters into native database queries.
-[Learn more about filtering](/docs/hotchocolate/v13/fetching-data/filtering)
+[Learn more about filtering](/docs/hotchocolate/v14/fetching-data/filtering)
# Sorting
Similar to filtering, Hot Chocolate can also autogenerate input types related to sorting. They allow us to specify by which fields and in which direction our entities should be sorted. These can also be translated into native database queries automatically.
-[Learn more about sorting](/docs/hotchocolate/v13/fetching-data/sorting)
+[Learn more about sorting](/docs/hotchocolate/v14/fetching-data/sorting)
# Projections
@@ -46,4 +46,4 @@ Projections allow Hot Chocolate to transform an incoming GraphQL query with a su
For example, if the client only requests the `name` and `id` of a user in their GraphQL query, Hot Chocolate will only query the database for those two columns.
-[Learn more about projections](/docs/hotchocolate/v13/fetching-data/projections)
+[Learn more about projections](/docs/hotchocolate/v14/fetching-data/projections)
diff --git a/website/src/docs/hotchocolate/v14/fetching-data/pagination.md b/website/src/docs/hotchocolate/v14/fetching-data/pagination.md
index a7025a117f4..207b4469a5e 100644
--- a/website/src/docs/hotchocolate/v14/fetching-data/pagination.md
+++ b/website/src/docs/hotchocolate/v14/fetching-data/pagination.md
@@ -340,7 +340,7 @@ public class UsersEdge
}
```
-[Learn more about extending types](/docs/hotchocolate/v13/defining-a-schema/extending-types)
+[Learn more about extending types](/docs/hotchocolate/v14/defining-a-schema/extending-types)
## Adding fields to a Connection
@@ -359,7 +359,7 @@ public class UsersConnectionExtension
}
```
-[Learn more about extending types](/docs/hotchocolate/v13/defining-a-schema/extending-types)
+[Learn more about extending types](/docs/hotchocolate/v14/defining-a-schema/extending-types)
These additional fields are great to perform aggregations either on the entire dataset, by for example issuing a second database call, or on top of the paginated result.
@@ -378,7 +378,7 @@ public class UsersConnectionExtension
}
```
-> Note: If you are using [Projections](/docs/hotchocolate/v13/fetching-data/projections), be aware that some properties on your model might not be set, depending on what the user queried for.
+> Note: If you are using [Projections](/docs/hotchocolate/v14/fetching-data/projections), be aware that some properties on your model might not be set, depending on what the user queried for.
## Total count
@@ -681,7 +681,7 @@ public class UserCollectionSegmentExtension
}
```
-[Learn more about extending types](/docs/hotchocolate/v13/defining-a-schema/extending-types)
+[Learn more about extending types](/docs/hotchocolate/v14/defining-a-schema/extending-types)
These additional fields are great to perform aggregations either on the entire dataset, by for example issuing a second database call, or on top of the paginated result.
@@ -700,7 +700,7 @@ public class UserCollectionSegmentExtension
}
```
-> Note: If you are using [Projections](/docs/hotchocolate/v13/fetching-data/projections), be aware that some properties on your model might not be set, depending on what the user queried for.
+> Note: If you are using [Projections](/docs/hotchocolate/v14/fetching-data/projections), be aware that some properties on your model might not be set, depending on what the user queried for.
## Total count
@@ -766,7 +766,7 @@ services
.AddMongoDbPagingProviders();
```
-[Consult the specific integration documentation for more details](/docs/hotchocolate/v13/integrations)
+[Consult the specific integration documentation for more details](/docs/hotchocolate/v14/integrations)
When registering paging providers we can name them to be able to explicitly reference them.
diff --git a/website/src/docs/hotchocolate/v14/fetching-data/resolvers.md b/website/src/docs/hotchocolate/v14/fetching-data/resolvers.md
index b900b305de8..5110af828df 100644
--- a/website/src/docs/hotchocolate/v14/fetching-data/resolvers.md
+++ b/website/src/docs/hotchocolate/v14/fetching-data/resolvers.md
@@ -55,7 +55,7 @@ Resolvers can be defined in a way that should feel very familiar to C# developer
Hot Chocolate automatically converts properties with a public get accessor to a resolver that simply returns its value.
-Properties are also covered in detail by the [object type documentation](/docs/hotchocolate/v13/defining-a-schema/object-types).
+Properties are also covered in detail by the [object type documentation](/docs/hotchocolate/v14/defining-a-schema/object-types).
## Regular Resolver
@@ -243,9 +243,9 @@ public class QueryType : ObjectType
We can access arguments we defined for our resolver like regular arguments of a function.
-There are also specific arguments that will be automatically populated by Hot Chocolate when the resolver is executed. These include [Dependency injection services](#injecting-services), [DataLoaders](/docs/hotchocolate/v13/fetching-data/dataloader), state, or even context like a [_parent_](#accessing-parent-values) value.
+There are also specific arguments that will be automatically populated by Hot Chocolate when the resolver is executed. These include [Dependency injection services](#injecting-services), [DataLoaders](/docs/hotchocolate/v14/fetching-data/dataloader), state, or even context like a [_parent_](#accessing-parent-values) value.
-[Learn more about arguments](/docs/hotchocolate/v13/defining-a-schema/arguments)
+[Learn more about arguments](/docs/hotchocolate/v14/defining-a-schema/arguments)
# Injecting Services
@@ -271,7 +271,7 @@ public class Query
}
```
-[Learn more about dependency injection](/docs/hotchocolate/v13/server/dependency-injection)
+[Learn more about dependency injection](/docs/hotchocolate/v14/server/dependency-injection)
# Accessing the HttpContext
@@ -367,7 +367,7 @@ public class User
}
```
-This is especially useful when using [type extensions](/docs/hotchocolate/v13/defining-a-schema/extending-types).
+This is especially useful when using [type extensions](/docs/hotchocolate/v14/defining-a-schema/extending-types).
diff --git a/website/src/docs/hotchocolate/v14/get-started-with-graphql-in-net-core.md b/website/src/docs/hotchocolate/v14/get-started-with-graphql-in-net-core.md
index 6b14261627c..b6ddfae2157 100644
--- a/website/src/docs/hotchocolate/v14/get-started-with-graphql-in-net-core.md
+++ b/website/src/docs/hotchocolate/v14/get-started-with-graphql-in-net-core.md
@@ -252,4 +252,4 @@ If you want to get an overview of Hot Chocolate's features, we recommend reading
For a guided tutorial that explains how you can setup your GraphQL server beyond this basic example, checkout [our workshop](https://github.com/ChilliCream/graphql-workshop). Here we will dive deeper into several topics around Hot Chocolate and GraphQL in general.
-You can also jump straight into our documentation and learn more about
[Defining a GraphQL schema](/docs/hotchocolate/v13/defining-a-schema).
+You can also jump straight into our documentation and learn more about
[Defining a GraphQL schema](/docs/hotchocolate/v14/defining-a-schema).
diff --git a/website/src/docs/hotchocolate/v14/index.md b/website/src/docs/hotchocolate/v14/index.md
index 95fdec08eaa..31c7ca811ae 100644
--- a/website/src/docs/hotchocolate/v14/index.md
+++ b/website/src/docs/hotchocolate/v14/index.md
@@ -16,6 +16,6 @@ You can use Hot Chocolate Server as:
Hot Chocolate is very easy to set up and takes the clutter away from writing GraphQL schemas. We update Hot Chocolate continuously and implement new spec features as they hit draft status. This lets you pick up new GraphQL features incrementally to open up new development opportunities for your ideas.
-Let's [get started](/docs/hotchocolate/v13/get-started-with-graphql-in-net-core) with Hot Chocolate!
+Let's [get started](/docs/hotchocolate/v14/get-started-with-graphql-in-net-core) with Hot Chocolate!
Join us on [YouTube](https://youtube.chillicream.com) for Hot Chocolate deep dives.
diff --git a/website/src/docs/hotchocolate/v14/integrations/entity-framework.md b/website/src/docs/hotchocolate/v14/integrations/entity-framework.md
index 11bce9cad13..6d8e8b4f2b5 100644
--- a/website/src/docs/hotchocolate/v14/integrations/entity-framework.md
+++ b/website/src/docs/hotchocolate/v14/integrations/entity-framework.md
@@ -13,7 +13,7 @@ builder.Services.AddDbContext(
options => options.UseSqlServer("YOUR_CONNECTION_STRING"));
```
-If you have read our [guidance on dependency injection](/docs/hotchocolate/v13/server/dependency-injection#resolver-injection) you might be inclined to simply inject your `DbContext` using the `HotChocolate.ServiceAttribute`.
+If you have read our [guidance on dependency injection](/docs/hotchocolate/v14/server/dependency-injection#resolver-injection) you might be inclined to simply inject your `DbContext` using the `HotChocolate.ServiceAttribute`.
```csharp
public Foo GetFoo([Service] ApplicationDbContext dbContext)
@@ -46,13 +46,13 @@ public Foo GetFoo(
=> // Omitted code for brevity
```
-[Learn more about `ServiceKind.Synchronized`](/docs/hotchocolate/v13/server/dependency-injection#servicekindsynchronized)
+[Learn more about `ServiceKind.Synchronized`](/docs/hotchocolate/v14/server/dependency-injection#servicekindsynchronized)
Since this is a lot of code to write, just to inject a `DbContext`, you can use [`RegisterDbContext`](#registerdbcontext) to simplify the injection.
# RegisterDbContext
-In order to simplify the injection of a `DbContext` we have introduced a method called `RegisterDbContext`, similar to the [`RegisterService`](/docs/hotchocolate/v13/server/dependency-injection#registerservice) method for regular services. This method is part of the `HotChocolate.Data.EntityFramework` package, which you'll have to install.
+In order to simplify the injection of a `DbContext` we have introduced a method called `RegisterDbContext`, similar to the [`RegisterService`](/docs/hotchocolate/v14/server/dependency-injection#registerservice) method for regular services. This method is part of the `HotChocolate.Data.EntityFramework` package, which you'll have to install.
@@ -88,15 +88,15 @@ builder.Services
# DbContextKind
-When registering a `DbContext` you can specify a `DbContextKind` to instruct Hot Chocolate to use a certain strategy when injecting the `DbContext`. For the most part the `DbContextKind` is really similar to the [ServiceKind](/docs/hotchocolate/v13/server/dependency-injection#servicekind), with the exception of the [DbContextKind.Pooled](#dbcontextkindpooled).
+When registering a `DbContext` you can specify a `DbContextKind` to instruct Hot Chocolate to use a certain strategy when injecting the `DbContext`. For the most part the `DbContextKind` is really similar to the [ServiceKind](/docs/hotchocolate/v14/server/dependency-injection#servicekind), with the exception of the [DbContextKind.Pooled](#dbcontextkindpooled).
## DbContextKind.Synchronized
-This injection mechanism ensures that resolvers injecting the specified `DbContext` are never run in parallel. This allows you to use the same scoped `DbContext` instance throughout a request, without the risk of running into concurrency exceptions as mentioned above. It behaves in the same fashion as [ServiceKind.Synchronized](/docs/hotchocolate/v13/server/dependency-injection#servicekindsynchronized) does for regular services.
+This injection mechanism ensures that resolvers injecting the specified `DbContext` are never run in parallel. This allows you to use the same scoped `DbContext` instance throughout a request, without the risk of running into concurrency exceptions as mentioned above. It behaves in the same fashion as [ServiceKind.Synchronized](/docs/hotchocolate/v14/server/dependency-injection#servicekindsynchronized) does for regular services.
## DbContextKind.Resolver
-This injection mechanism will resolve the scoped `DbContext` from a resolver-scoped [`IServiceScope`](https://docs.microsoft.com/dotnet/api/microsoft.extensions.dependencyinjection.iservicescope). It behaves in the same fashion as [ServiceKind.Resolver](/docs/hotchocolate/v13/server/dependency-injection#servicekindresolver) does for regular services. Since a different `DbContext` instance is resolved for each resolver invocation, Hot Chocolate can parallelize the execution of resolvers using this `DbContext`.
+This injection mechanism will resolve the scoped `DbContext` from a resolver-scoped [`IServiceScope`](https://docs.microsoft.com/dotnet/api/microsoft.extensions.dependencyinjection.iservicescope). It behaves in the same fashion as [ServiceKind.Resolver](/docs/hotchocolate/v14/server/dependency-injection#servicekindresolver) does for regular services. Since a different `DbContext` instance is resolved for each resolver invocation, Hot Chocolate can parallelize the execution of resolvers using this `DbContext`.
## DbContextKind.Pooled
diff --git a/website/src/docs/hotchocolate/v14/integrations/index.md b/website/src/docs/hotchocolate/v14/integrations/index.md
index cf6f83cd180..6bfc56bb6d0 100644
--- a/website/src/docs/hotchocolate/v14/integrations/index.md
+++ b/website/src/docs/hotchocolate/v14/integrations/index.md
@@ -8,28 +8,28 @@ In this section we will look at different technologies and how you can integrate
Using Entity Framework Core requires some additional setup to play nicely with the concurrent nature of GraphQL resolvers. You will learn how to correctly use your `DbContext` in different scenarios and also how to tune Entity Framework Core for maximum throughput of your GraphQL server.
-[Learn more about our Entity Framework Core integration](/docs/hotchocolate/v13/integrations/entity-framework)
+[Learn more about our Entity Framework Core integration](/docs/hotchocolate/v14/integrations/entity-framework)
# MongoDB
You will learn how to access MongoDB from within your resolvers and how to translate our pagination, projection, filtering and sorting capabilities to native MongoDB queries.
-[Learn more about our MongoDB integration](/docs/hotchocolate/v13/integrations/mongodb)
+[Learn more about our MongoDB integration](/docs/hotchocolate/v14/integrations/mongodb)
# Neo4J
You will learn how to access Neo4J from within your resolvers and how to translate our pagination, projection, filtering and sorting capabilities to native Neo4J queries.
-[Learn more about our Neo4J integration](/docs/hotchocolate/v13/integrations/neo4j)
+[Learn more about our Neo4J integration](/docs/hotchocolate/v14/integrations/neo4j)
# Spatial Data
You will learn how you can expose [NetTopologySuite types](https://github.com/NetTopologySuite/NetTopologySuite) in form of [GeoJSON](https://geojson.org/) and how to integrate it with our data APIs.
-[Learn more about our Spatial Data integration](/docs/hotchocolate/v13/integrations/spatial-data)
+[Learn more about our Spatial Data integration](/docs/hotchocolate/v14/integrations/spatial-data)
# Marten
Marten requires some custom configurations to work well with the `HotChocolate.Data` package. You will learn how to configure your schema to integrate seamlessly with Marten.
-[Learn more about our Marten integration](/docs/hotchocolate/v13/integrations/marten)
+[Learn more about our Marten integration](/docs/hotchocolate/v14/integrations/marten)
diff --git a/website/src/docs/hotchocolate/v14/integrations/marten.md b/website/src/docs/hotchocolate/v14/integrations/marten.md
index 024524e6c57..67b8fa3902b 100644
--- a/website/src/docs/hotchocolate/v14/integrations/marten.md
+++ b/website/src/docs/hotchocolate/v14/integrations/marten.md
@@ -27,7 +27,7 @@ services
.AddMartenFiltering();
```
-[Learn more about filtering](/docs/hotchocolate/v13/fetching-data/filtering).
+[Learn more about filtering](/docs/hotchocolate/v14/fetching-data/filtering).
# Sorting
@@ -40,14 +40,14 @@ services
.AddMartenSorting();
```
-[Learn more about sorting](/docs/hotchocolate/v13/fetching-data/sorting).
+[Learn more about sorting](/docs/hotchocolate/v14/fetching-data/sorting).
# Projections
Projections work out of the box as expected with Marten. No custom configuration is needed.
-[Learn more about projections](/docs/hotchocolate/v13/fetching-data/projections).
+[Learn more about projections](/docs/hotchocolate/v14/fetching-data/projections).
# Paging
Pagination works out of the box as expected with Marten. No custom configuration is needed.
-[Learn more about pagination](/docs/hotchocolate/v13/fetching-data/pagination).
+[Learn more about pagination](/docs/hotchocolate/v14/fetching-data/pagination).
diff --git a/website/src/docs/hotchocolate/v14/integrations/mongodb.md b/website/src/docs/hotchocolate/v14/integrations/mongodb.md
index 5dc8b319ca7..05de52fcc82 100644
--- a/website/src/docs/hotchocolate/v14/integrations/mongodb.md
+++ b/website/src/docs/hotchocolate/v14/integrations/mongodb.md
@@ -180,7 +180,7 @@ services
.AddMongoDbPagingProviders();
```
-[Learn more about pagination providers](/docs/hotchocolate/v13/fetching-data/pagination#providers)
+[Learn more about pagination providers](/docs/hotchocolate/v14/fetching-data/pagination#providers)
## Cursor Pagination
diff --git a/website/src/docs/hotchocolate/v14/integrations/neo4j.md b/website/src/docs/hotchocolate/v14/integrations/neo4j.md
index c5cf387e373..77802c9bd33 100644
--- a/website/src/docs/hotchocolate/v14/integrations/neo4j.md
+++ b/website/src/docs/hotchocolate/v14/integrations/neo4j.md
@@ -152,7 +152,7 @@ services
.AddNeo4JPagingProviders();
```
-[Learn more about pagination providers](/docs/hotchocolate/v13/fetching-data/pagination#providers)
+[Learn more about pagination providers](/docs/hotchocolate/v14/fetching-data/pagination#providers)
## Cursor Pagination
diff --git a/website/src/docs/hotchocolate/v14/performance/index.md b/website/src/docs/hotchocolate/v14/performance/index.md
index e9db8fa0efb..e2244b031ef 100644
--- a/website/src/docs/hotchocolate/v14/performance/index.md
+++ b/website/src/docs/hotchocolate/v14/performance/index.md
@@ -37,7 +37,7 @@ This can be done by extracting the queries from our client applications at build
Strawberry Shake, [Relay](https://relay.dev/docs/guides/persisted-queries/), and [Apollo](https://www.apollographql.com/docs/react/api/link/persisted-queries/) client all support this approach.
-[Learn more about persisted queries](/docs/hotchocolate/v13/performance/persisted-queries)
+[Learn more about persisted queries](/docs/hotchocolate/v14/performance/persisted-queries)
## Automatic persisted queries
@@ -47,4 +47,4 @@ However, we do not get any bundle size improvements for our applications since t
Both Strawberry Shake and [Apollo](https://www.apollographql.com/docs/apollo-server/performance/apq/) client support this approach.
-[Learn more about automatic persisted queries](/docs/hotchocolate/v13/performance/automatic-persisted-queries)
+[Learn more about automatic persisted queries](/docs/hotchocolate/v14/performance/automatic-persisted-queries)
diff --git a/website/src/docs/hotchocolate/v14/performance/persisted-queries.md b/website/src/docs/hotchocolate/v14/performance/persisted-queries.md
index 6d95cf924de..083030db82d 100644
--- a/website/src/docs/hotchocolate/v14/performance/persisted-queries.md
+++ b/website/src/docs/hotchocolate/v14/performance/persisted-queries.md
@@ -18,7 +18,7 @@ Extracting queries is supported by client libraries like [Relay](https://relay.d
- After the server has been deployed, clients can execute persisted queries, by specifying the query id (hash) in their requests.
- If Hot Chocolate can find a query that matches the specified hash in the query storage it will execute it and return the result to the client.
-> Note: There are also [automatic persisted queries](/docs/hotchocolate/v13/performance/automatic-persisted-queries), which allow clients to persist queries at runtime. They might be a better fit, if our API is used by many clients with different requirements.
+> Note: There are also [automatic persisted queries](/docs/hotchocolate/v14/performance/automatic-persisted-queries), which allow clients to persist queries at runtime. They might be a better fit, if our API is used by many clients with different requirements.
# Benefits
@@ -160,7 +160,7 @@ builder.Services
This will block any dynamic queries that do not contain the `id` of a persisted query.
-You might still want to allow the execution of dynamic queries in certain circumstances. You can override the `OnlyAllowPersistedQueries` rule on a per-request basis, using the `AllowNonPersistedQuery` method on the `OperationRequestBuilder`. Simply implement a custom [IHttpRequestInterceptor](/docs/hotchocolate/v13/server/interceptors#ihttprequestinterceptor) and call `AllowNonPersistedQuery` if a certain condition is met:
+You might still want to allow the execution of dynamic queries in certain circumstances. You can override the `OnlyAllowPersistedQueries` rule on a per-request basis, using the `AllowNonPersistedQuery` method on the `OperationRequestBuilder`. Simply implement a custom [IHttpRequestInterceptor](/docs/hotchocolate/v14/server/interceptors#ihttprequestinterceptor) and call `AllowNonPersistedQuery` if a certain condition is met:
```csharp
builder.Services
diff --git a/website/src/docs/hotchocolate/v14/security/authentication.md b/website/src/docs/hotchocolate/v14/security/authentication.md
index ddda5e4e503..2ce4211f4d0 100644
--- a/website/src/docs/hotchocolate/v14/security/authentication.md
+++ b/website/src/docs/hotchocolate/v14/security/authentication.md
@@ -85,7 +85,7 @@ services
All of this does not yet lock out unauthenticated users. It only exposes the identity of the authenticated user to our application through a `ClaimsPrincipal`. If we want to prevent certain users from querying our graph, we need to utilize authorization.
-[Learn more about authorization](/docs/hotchocolate/v13/security/authorization)
+[Learn more about authorization](/docs/hotchocolate/v14/security/authorization)
# Accessing the ClaimsPrincipal
diff --git a/website/src/docs/hotchocolate/v14/security/authorization.md b/website/src/docs/hotchocolate/v14/security/authorization.md
index bd664e41688..229a870b0bb 100644
--- a/website/src/docs/hotchocolate/v14/security/authorization.md
+++ b/website/src/docs/hotchocolate/v14/security/authorization.md
@@ -8,7 +8,7 @@ Authorization allows us to determine a user's permissions within our system. We
Authentication is a prerequisite of Authorization, as we first need to validate a user's "authenticity" before we can evaluate his authorization claims.
-[Learn how to setup authentication](/docs/hotchocolate/v13/security/authentication)
+[Learn how to setup authentication](/docs/hotchocolate/v14/security/authentication)
# Setup
@@ -397,7 +397,7 @@ This method also accepts [roles](#roles) and [policies](#policies) as arguments,
> Warning: Unlike the `@authorize directive` this will return status code 401 and prevent unauthorized access to all middleware included in `MapGraphQL`. This includes our GraphQL IDE Banana Cake Pop. If we do not want to block unauthorized access to Banana Cake Pop, we can split up the `MapGraphQL` middleware and for example only apply the `RequireAuthorization` to the `MapGraphQLHttp` middleware.
-[Learn more about available middleware](/docs/hotchocolate/v13/server/endpoints)
+[Learn more about available middleware](/docs/hotchocolate/v14/server/endpoints)
# Modifying the ClaimsPrincipal
@@ -435,4 +435,4 @@ public class Startup
}
```
-[Learn more about interceptors](/docs/hotchocolate/v13/server/interceptors)
+[Learn more about interceptors](/docs/hotchocolate/v14/server/interceptors)
diff --git a/website/src/docs/hotchocolate/v14/security/index.md b/website/src/docs/hotchocolate/v14/security/index.md
index a44d7736310..53b8be44468 100644
--- a/website/src/docs/hotchocolate/v14/security/index.md
+++ b/website/src/docs/hotchocolate/v14/security/index.md
@@ -10,31 +10,31 @@ When we think about API security, we, in many cases, only think about authorizat
Authentication in Hot Chocolate is built around the official authentication mechanisms in ASP.NET Core, allowing us to fully embrace their customizability and variety of authentication providers.
-[Learn more about authentication](/docs/hotchocolate/v13/security/authentication)
+[Learn more about authentication](/docs/hotchocolate/v14/security/authentication)
# Authorization
Authorization is one of the most basic security concepts. It builds on top of authentication and allows us to restrict access to types and fields, based on whether a user is authenticated, assigned specific roles or satisfies one or more policies. Hot Chocolate closely matches and nicely integrates with the official ASP.NET Core authorization APIs.
-[Learn more about authorization](/docs/hotchocolate/v13/security/authorization)
+[Learn more about authorization](/docs/hotchocolate/v14/security/authorization)
# Persisted Queries
Depending on our setup and requirements, the simplest way to make our server secure and control the request impact is to use persisted queries. With this approach, we can export the request from our client applications at development time and only allow the set of known queries to be executed in our production environment.
-[Learn more about persisted queries](/docs/hotchocolate/v13/performance/persisted-queries)
+[Learn more about persisted queries](/docs/hotchocolate/v14/performance/persisted-queries)
# Introspection
Introspection is one of the GraphQL's core features and powers many GraphQL IDEs and developer tools. But introspection can also produce large results, which can degrade the performance of our server. Apart from the performance aspect, we might want to limit who can introspect our GraphQL server. Hot Chocolate allows us to control who can access introspection fields by using query validation rules.
-[Learn more about restricting introspection](/docs/hotchocolate/v13/server/introspection#disabling-introspection).
+[Learn more about restricting introspection](/docs/hotchocolate/v14/server/introspection#disabling-introspection).
# Pagination
Pagination is another topic we often forget when thinking about securing our GraphQL API. Hot Chocolate, by default, will apply strict defaults so that APIs will only allow a certain amount of nodes per connection. While we set defaults, they might not be the right ones for your environment and might yield too much load.
-[Learn more about pagination](/docs/hotchocolate/v13/fetching-data/pagination)
+[Learn more about pagination](/docs/hotchocolate/v14/fetching-data/pagination)
# Execution depth
@@ -76,7 +76,7 @@ builder.Services.AddGraphQLServer()
# Nodes batch size
-When building a [Relay.js compliant schema](/docs/hotchocolate/v13/defining-a-schema/relay#global-object-identification), our server also exposes a `nodes(ids: [ID])` field besides the `node(id: ID)` field, required by the Relay specification. This `nodes` field allows users to fetch multiple nodes at once. An attacker could exploit this and attempt to fetch a large quantity of nodes to degrade the performance of your GraphQL server. To prevent this, we limit the number of nodes that can be requested to 10.
+When building a [Relay.js compliant schema](/docs/hotchocolate/v14/defining-a-schema/relay#global-object-identification), our server also exposes a `nodes(ids: [ID])` field besides the `node(id: ID)` field, required by the Relay specification. This `nodes` field allows users to fetch multiple nodes at once. An attacker could exploit this and attempt to fetch a large quantity of nodes to degrade the performance of your GraphQL server. To prevent this, we limit the number of nodes that can be requested to 10.
You can change this default to suite the needs of your application as shown below:
@@ -89,7 +89,7 @@ builder.Services.AddGraphQLServer()
With technologies like REST, it was easy to scale servers and measure the impact of a single request on our server infrastructure. With GraphQL, we need to do a bit more to enforce that requests have a consistent impact on our servers. Hot Chocolate can track the cost of fields and deny the execution of requests that exceed the allowed impact on our system.
-[Learn more about the operation complexity analyzer](/docs/hotchocolate/v13/security/operation-complexity).
+[Learn more about the operation complexity analyzer](/docs/hotchocolate/v14/security/operation-complexity).
# FIPS compliance
@@ -101,4 +101,4 @@ Fortunately, we offer the option to use the FIPS compliant SHA256 hashing algori
builder.Services.AddSha256DocumentHashProvider();
```
-[Learn more about document hashing providers](/docs/hotchocolate/v13/performance/persisted-queries#hashing-algorithms)
+[Learn more about document hashing providers](/docs/hotchocolate/v14/performance/persisted-queries#hashing-algorithms)
diff --git a/website/src/docs/hotchocolate/v14/server/dependency-injection.md b/website/src/docs/hotchocolate/v14/server/dependency-injection.md
index 8a4a526bb76..618ca5fe402 100644
--- a/website/src/docs/hotchocolate/v14/server/dependency-injection.md
+++ b/website/src/docs/hotchocolate/v14/server/dependency-injection.md
@@ -65,7 +65,7 @@ descriptor
});
```
-If you are trying to inject a Entity Framework Core `DbContext`, be sure to checkout our [guidance on working with Entity Framework Core](/docs/hotchocolate/v13/integrations/entity-framework).
+If you are trying to inject a Entity Framework Core `DbContext`, be sure to checkout our [guidance on working with Entity Framework Core](/docs/hotchocolate/v14/integrations/entity-framework).
# Constructor injection
@@ -229,7 +229,7 @@ While Hot Chocolate's internals rely heavily on Microsoft's dependency injection
You can switch out the service provider used for GraphQL requests, as long as your dependency injection container implements the [`IServiceProvider`](https://docs.microsoft.com/dotnet/api/system.iserviceprovider) interface.
-To switch out the service provider you need to call [`SetServices`](/docs/hotchocolate/v13/server/interceptors#setservices) on the [`OperationRequestBuilder`](/docs/hotchocolate/v13/server/interceptors#operationrequestbuilder) in both the [`IHttpRequestInterceptor`](/docs/hotchocolate/v13/server/interceptors#ihttprequestinterceptor) and the [`ISocketSessionInterceptor`](/docs/hotchocolate/v13/server/interceptors#isocketsessioninterceptor).
+To switch out the service provider you need to call [`SetServices`](/docs/hotchocolate/v14/server/interceptors#setservices) on the [`OperationRequestBuilder`](/docs/hotchocolate/v14/server/interceptors#operationrequestbuilder) in both the [`IHttpRequestInterceptor`](/docs/hotchocolate/v14/server/interceptors#ihttprequestinterceptor) and the [`ISocketSessionInterceptor`](/docs/hotchocolate/v14/server/interceptors#isocketsessioninterceptor).
```csharp
public class HttpRequestInterceptor : DefaultHttpRequestInterceptor
@@ -270,4 +270,4 @@ services
.AddSocketSessionInterceptor();
```
-[Learn more about interceptors](/docs/hotchocolate/v13/server/interceptors)
+[Learn more about interceptors](/docs/hotchocolate/v14/server/interceptors)
diff --git a/website/src/docs/hotchocolate/v14/server/endpoints.md b/website/src/docs/hotchocolate/v14/server/endpoints.md
index 89d2ee2d376..fe9b19fee18 100644
--- a/website/src/docs/hotchocolate/v14/server/endpoints.md
+++ b/website/src/docs/hotchocolate/v14/server/endpoints.md
@@ -111,7 +111,7 @@ endpoints.MapGraphQL().WithOptions(new GraphQLServerOptions
This setting controls whether the GraphQL server is able to handle HTTP Multipart forms, i.e. file uploads.
-[Learn more about uploading files](/docs/hotchocolate/v13/server/files#upload-scalar)
+[Learn more about uploading files](/docs/hotchocolate/v14/server/files#upload-scalar)
### Tool
diff --git a/website/src/docs/hotchocolate/v14/server/files.md b/website/src/docs/hotchocolate/v14/server/files.md
index ba2cb42bfcb..21f4dc360f4 100644
--- a/website/src/docs/hotchocolate/v14/server/files.md
+++ b/website/src/docs/hotchocolate/v14/server/files.md
@@ -95,7 +95,7 @@ Take a look at the Annotation-based or Code-first example.
-[Learn more about arguments](/docs/hotchocolate/v13/defining-a-schema/arguments)
+[Learn more about arguments](/docs/hotchocolate/v14/defining-a-schema/arguments)
In input object types it can be used like the following.
@@ -136,11 +136,11 @@ Take a look at the Annotation-based or Code-first example.
-[Learn more about input object types](/docs/hotchocolate/v13/defining-a-schema/input-object-types)
+[Learn more about input object types](/docs/hotchocolate/v14/defining-a-schema/input-object-types)
If you need to upload a list of files, it works exactly as you would expect. You just use a `List` or `ListType`.
-[Learn more about lists](/docs/hotchocolate/v13/defining-a-schema/lists)
+[Learn more about lists](/docs/hotchocolate/v14/defining-a-schema/lists)
### Client usage
diff --git a/website/src/docs/hotchocolate/v14/server/global-state.md b/website/src/docs/hotchocolate/v14/server/global-state.md
index ea1c114f293..fd6c14920ec 100644
--- a/website/src/docs/hotchocolate/v14/server/global-state.md
+++ b/website/src/docs/hotchocolate/v14/server/global-state.md
@@ -30,7 +30,7 @@ public class HttpRequestInterceptor : DefaultHttpRequestInterceptor
}
```
-[Learn more about interceptors](/docs/hotchocolate/v13/server/interceptors)
+[Learn more about interceptors](/docs/hotchocolate/v14/server/interceptors)
# Accessing Global State
diff --git a/website/src/docs/hotchocolate/v14/server/index.md b/website/src/docs/hotchocolate/v14/server/index.md
index 185f3515982..45c59e2d6f2 100644
--- a/website/src/docs/hotchocolate/v14/server/index.md
+++ b/website/src/docs/hotchocolate/v14/server/index.md
@@ -8,13 +8,13 @@ In this section, you will learn how you can configure your GraphQL server and we
Hot Chocolate comes with ASP.NET Core endpoint middleware for accepting HTTP / WebSocket GraphQL requests, downloading the GraphQL schema, or serving the [Banana Cake Pop](/products/bananacakepop) GraphQL IDE.
-[Learn more about endpoints](/docs/hotchocolate/v13/server/endpoints)
+[Learn more about endpoints](/docs/hotchocolate/v14/server/endpoints)
# HTTP transport
Hot Chocolate implements the GraphQL over HTTP specification.
-[Learn more about the HTTP transport](/docs/hotchocolate/v13/server/http-transport)
+[Learn more about the HTTP transport](/docs/hotchocolate/v14/server/http-transport)
# Interceptors
@@ -22,40 +22,40 @@ Interceptors allow you to intercept GraphQL requests before they are executed. T
In the case of WebSockets, the interceptor also allows you to handle life cycle events, such as when a client first connects.
-[Learn more about interceptors](/docs/hotchocolate/v13/server/interceptors)
+[Learn more about interceptors](/docs/hotchocolate/v14/server/interceptors)
# Dependency injection
Hot Chocolate allows you to access dependency injection services inside your resolvers. We will take a look at the different ways you can inject services and also how you can switch out the dependency injection provider.
-[Learn more about Dependency Injection](/docs/hotchocolate/v13/server/dependency-injection)
+[Learn more about Dependency Injection](/docs/hotchocolate/v14/server/dependency-injection)
# Global State
With Global State you can define properties on a per-request basis to be made available to all resolvers and middleware.
-[Learn more about Global State](/docs/hotchocolate/v13/server/global-state)
+[Learn more about Global State](/docs/hotchocolate/v14/server/global-state)
# Introspection
Introspection allows you to query the type system of your GraphQL server using regular GraphQL queries. While this is a powerful feature, enabling all sorts of amazing developer tooling, it can also be used as an attack vector. We will take a look at how you can control who is allowed to issue introspection queries against your GraphQL server.
-[Learn more about introspection](/docs/hotchocolate/v13/server/introspection)
+[Learn more about introspection](/docs/hotchocolate/v14/server/introspection)
# Files
Though not considered one of the responsibilities of a GraphQL server, for convenience, Hot Chocolate provides file upload support. We will also take a look at what other options you have when it comes to uploading and serving files.
-[Learn more about handling files](/docs/hotchocolate/v13/server/files)
+[Learn more about handling files](/docs/hotchocolate/v14/server/files)
# Instrumentation
Hot Chocolate allows you to gather instrumentation data about your GraphQL server, by hooking into various events in the execution process of a GraphQL request. You will also learn how to setup our OpenTelemetry integration and how to utilize _Apollo Tracing_.
-[Learn more about instrumentation](/docs/hotchocolate/v13/server/instrumentation)
+[Learn more about instrumentation](/docs/hotchocolate/v14/server/instrumentation)
# Batching
Batching allows you to send and execute a sequence of GraphQL operations in a single request.
-[Learn more about batching](/docs/hotchocolate/v13/server/batching)
+[Learn more about batching](/docs/hotchocolate/v14/server/batching)
diff --git a/website/src/docs/hotchocolate/v14/server/interceptors.md b/website/src/docs/hotchocolate/v14/server/interceptors.md
index 7bda785801d..6515ececa82 100644
--- a/website/src/docs/hotchocolate/v14/server/interceptors.md
+++ b/website/src/docs/hotchocolate/v14/server/interceptors.md
@@ -167,7 +167,7 @@ It has many capabilities, but most of them are only used internally. In the foll
We can set `Properties`, also called Global State, on the `OperationRequestBuilder`, which can then be referenced in middleware, field resolvers, etc.
-[Learn more about Global State](/docs/hotchocolate/v13/server/global-state)
+[Learn more about Global State](/docs/hotchocolate/v14/server/global-state)
### SetProperty
@@ -224,7 +224,7 @@ requestBuilder.AllowIntrospection();
## SkipComplexityAnalysis
-When using the [operation complexity feature](/docs/hotchocolate/v13/security/operation-complexity), we can skip the complexity analysis for specific requests.
+When using the [operation complexity feature](/docs/hotchocolate/v14/security/operation-complexity), we can skip the complexity analysis for specific requests.
```csharp
requestBuilder.SkipComplexityAnalysis();
@@ -232,7 +232,7 @@ requestBuilder.SkipComplexityAnalysis();
## SetMaximumAllowedComplexity
-When using the [operation complexity feature](/docs/hotchocolate/v13/security/operation-complexity), we can overwrite the global complexity limit for specific requests.
+When using the [operation complexity feature](/docs/hotchocolate/v14/security/operation-complexity), we can overwrite the global complexity limit for specific requests.
```csharp
requestBuilder.SetMaximumAllowedComplexity(5000);
diff --git a/website/src/docs/hotchocolate/v14/server/introspection.md b/website/src/docs/hotchocolate/v14/server/introspection.md
index 5a27f2f9763..d9a21b71f06 100644
--- a/website/src/docs/hotchocolate/v14/server/introspection.md
+++ b/website/src/docs/hotchocolate/v14/server/introspection.md
@@ -36,7 +36,7 @@ We could also request the fields plus their arguments of a specific type using t
}
```
-The `__typename` field will most likely be the introspection feature we as regular developers will be using the most. When working with [unions](/docs/hotchocolate/v13/defining-a-schema/unions) for example it can tell us the name of the type that's being returned, allowing us to handle the result accordingly.
+The `__typename` field will most likely be the introspection feature we as regular developers will be using the most. When working with [unions](/docs/hotchocolate/v14/defining-a-schema/unions) for example it can tell us the name of the type that's being returned, allowing us to handle the result accordingly.
```graphql
{
@@ -123,7 +123,7 @@ public class Startup
}
```
-[Learn more about interceptors](/docs/hotchocolate/v13/server/interceptors)
+[Learn more about interceptors](/docs/hotchocolate/v14/server/interceptors)
## Custom error message