diff --git a/docs/deployments-and-hosting/kubernetes/helm-chart/cosmo-platform.mdx b/docs/deployments-and-hosting/kubernetes/helm-chart/cosmo-platform.mdx
index b3948fd7..b190a29c 100644
--- a/docs/deployments-and-hosting/kubernetes/helm-chart/cosmo-platform.mdx
+++ b/docs/deployments-and-hosting/kubernetes/helm-chart/cosmo-platform.mdx
@@ -41,7 +41,7 @@ Username: foo@wundergraph.com
Password: wunder@123
```
-If you want to interact from [wgc](https://github.com/wundergraph/cosmo-docs/blob/main/deployments-and-hosting/kubernetes/helm-chart/broken-reference/README.md) with the controlplane, you can use the following credentials:
+If you want to interact from `wgc` with the controlplane, you can use the following credentials:
```bash
export COSMO_API_KEY="cosmo_669b576aaadc10ee1ae81d9193425705"
diff --git a/docs/docs.json b/docs/docs.json
index 4f859bcc..d5e9bd84 100644
--- a/docs/docs.json
+++ b/docs/docs.json
@@ -350,7 +350,6 @@
"group": "Directives",
"icon": "sign-post",
"pages": [
- "federation/directives",
"federation/federation-directives-index",
"federation/directives/shareable",
"federation/directives/authenticated",
@@ -616,7 +615,7 @@
]
},
{
- "tab": "Guides",
+ "tab": "Tutorials",
"icon": "newspaper",
"groups": [
{
diff --git a/docs/federation/federation-compatibility-matrix.mdx b/docs/federation/federation-compatibility-matrix.mdx
index 2cc6a741..4e39e76c 100644
--- a/docs/federation/federation-compatibility-matrix.mdx
+++ b/docs/federation/federation-compatibility-matrix.mdx
@@ -11,7 +11,7 @@ description: "The following list gives you an Overview of the compatibility betw
| @extends | Supported |
| @external | Supported |
| @key | Supported |
-|@key (composite keys)| Supported |
+| @key (composite keys)| Supported |
| @provides | Supported |
| @requires | Supported |
| @tag | Supported |
@@ -24,7 +24,7 @@ description: "The following list gives you an Overview of the compatibility betw
|-----------|-------|
| @inaccessible | Supported |
| @override | Supported |
-| @shareable | Supported |
+| [@shareable](/federation/directives/shareable) | Supported |
| @key "resolvable" argument | Supported |
| @link | Supported (but unnecessary) |
diff --git a/docs/federation/federation-directives-index.mdx b/docs/federation/federation-directives-index.mdx
index b2910bd6..524db894 100644
--- a/docs/federation/federation-directives-index.mdx
+++ b/docs/federation/federation-directives-index.mdx
@@ -10,11 +10,11 @@ This page lists the GraphQL Federation directives currently supported by WunderG
| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`@authenticated`](/federation/directives/authenticated) | Marks a field or type as requiring authentication. Only requests with valid credentials can access it. |
| `@composeDirective` (planned) | Tells the composition process to preserve a specific custom type system directive in the supergraph. |
-| [`@edfs__kafkaPublish`](/federation/event-driven-federation/kafka) | Marks a mutation field that publishes an event to a Kafka topic. Requires a topic and provider ID. |
-| [`@edfs__kafkaSubscribe`](/federation/event-driven-federation/kafka) | Declares a subscription field that listens to one or more Kafka topics. Used in EDG Subscription fields. |
-| [`@edfs__natsPublish`](/federation/event-driven-federation/nats) | Marks a mutation field that publishes an event to a NATS subject. Requires a subject and provider ID. |
-| [`@edfs__natsRequest`](/federation/event-driven-federation/nats) | Declares a query field that requests an event over NATS and expects a response. Used in EDG Query fields. |
-| [`@edfs__natsSubscribe`](/federation/event-driven-federation/nats) | Marks a subscription field that listens to one or more NATS subjects. Can include stream configuration. |
+| [`@edfs__kafkaPublish`](/federation/event-driven-federated-subscriptions/kafka#%40edfs-kafkapublish) | Marks a mutation field that publishes an event to a Kafka topic. Requires a topic and provider ID. |
+| [`@edfs__kafkaSubscribe`](/federation/event-driven-federated-subscriptions/kafka#%40edfs-kafkasubscribe) | Declares a subscription field that listens to one or more Kafka topics. Used in EDG Subscription fields. |
+| [`@edfs__natsPublish`](/federation/event-driven-federated-subscriptions/nats#%40edfs-natspublish) | Marks a mutation field that publishes an event to a NATS subject. Requires a subject and provider ID. |
+| [`@edfs__natsRequest`](/federation/event-driven-federated-subscriptions/nats#%40edfs-natsrequest) | Declares a query field that requests an event over NATS and expects a response. Used in EDG Query fields. |
+| [`@edfs__natsSubscribe`](/federation/event-driven-federated-subscriptions/nats#%40edfs-natssubscribe) | Marks a subscription field that listens to one or more NATS subjects. Can include stream configuration. |
| `@external` | Marks a field as coming from another subgraph in a federated GraphQL schema. The field exists on the base type in a different subgraph and is not resolved by the current one, but it can be referenced if needed by directives or to satisfy an interface. In addition to indicating data ownership, `@external` is used in several advanced scenarios: to satisfy an interface implementation, to reference a field that may be conditionally provided via `@provides`, or to declare a dependency used by `@requires`. |
| `@extends` | Marks an object or interface as an extension of a type that is defined in another subgraph, typically when the subgraph's GraphQL implementation does not support the `extend` keyword. This directive is mainly used by subgraph servers that lack native support for type extensions. In Federation v2, this is no longer required to mark entity types as extensions. Any subgraph can contribute fields to an entity without declaring it as an extension. In Federation v1, each entity had an originating subgraph, and any other subgraph referencing that entity was required to use the `extend` keyword. The `@extends` directive remains in use primarily for backward compatibility and edge cases in tooling support. |
| `@inaccessible` | Hides a field or type from the client schema. It cannot be queried by the user, but the planner may still access it if used in a `@key`, `@requires`, or `@provides` directive. Types marked as inaccessible are excluded from unions and interfaces. If the server returns one, the router will either return an error or render the object as null depending on the field’s nullability. |
diff --git a/docs/images/concepts/feature-flag-traffic-splitting.png b/docs/images/concepts/feature-flag-traffic-splitting.png
index 61d3c77c..89002a5f 100644
Binary files a/docs/images/concepts/feature-flag-traffic-splitting.png and b/docs/images/concepts/feature-flag-traffic-splitting.png differ
diff --git a/docs/images/concepts/feature-flags.png b/docs/images/concepts/feature-flags.png
index 2577de8f..990ccbaf 100644
Binary files a/docs/images/concepts/feature-flags.png and b/docs/images/concepts/feature-flags.png differ
diff --git a/docs/images/router/event-driven-federated-subscriptions-edfs/Kafka2.png b/docs/images/router/event-driven-federated-subscriptions-edfs/Kafka2.png
deleted file mode 100644
index 474b2242..00000000
Binary files a/docs/images/router/event-driven-federated-subscriptions-edfs/Kafka2.png and /dev/null differ
diff --git a/docs/images/router/event-driven-federated-subscriptions-edfs/NATS1.png b/docs/images/router/event-driven-federated-subscriptions-edfs/NATS1.png
index e0cb74cd..a396f9a7 100644
Binary files a/docs/images/router/event-driven-federated-subscriptions-edfs/NATS1.png and b/docs/images/router/event-driven-federated-subscriptions-edfs/NATS1.png differ
diff --git a/docs/images/router/event-driven-federated-subscriptions-edfs/NATS2.png b/docs/images/router/event-driven-federated-subscriptions-edfs/NATS2.png
index 82a47ef3..135cf3d8 100644
Binary files a/docs/images/router/event-driven-federated-subscriptions-edfs/NATS2.png and b/docs/images/router/event-driven-federated-subscriptions-edfs/NATS2.png differ
diff --git a/docs/images/router/event-driven-federated-subscriptions-edfs/kafka1.png b/docs/images/router/event-driven-federated-subscriptions-edfs/kafka1.png
index eb63b52f..2ddc94ec 100644
Binary files a/docs/images/router/event-driven-federated-subscriptions-edfs/kafka1.png and b/docs/images/router/event-driven-federated-subscriptions-edfs/kafka1.png differ
diff --git a/docs/images/router/event-driven-federated-subscriptions-edfs/kafka2.png b/docs/images/router/event-driven-federated-subscriptions-edfs/kafka2.png
new file mode 100644
index 00000000..edbad043
Binary files /dev/null and b/docs/images/router/event-driven-federated-subscriptions-edfs/kafka2.png differ
diff --git a/docs/images/router/event-driven-federated-subscriptions-edfs/redis1.png b/docs/images/router/event-driven-federated-subscriptions-edfs/redis1.png
index 39132c8b..616e2abc 100644
Binary files a/docs/images/router/event-driven-federated-subscriptions-edfs/redis1.png and b/docs/images/router/event-driven-federated-subscriptions-edfs/redis1.png differ
diff --git a/docs/images/router/event-driven-federated-subscriptions-edfs/redis2.png b/docs/images/router/event-driven-federated-subscriptions-edfs/redis2.png
index 3693ce50..4c7770d5 100644
Binary files a/docs/images/router/event-driven-federated-subscriptions-edfs/redis2.png and b/docs/images/router/event-driven-federated-subscriptions-edfs/redis2.png differ
diff --git a/docs/images/tutorial/apollo-compatibility-mode.png b/docs/images/tutorial/apollo-compatibility-mode.png
index 4e4fb204..9dd68042 100644
Binary files a/docs/images/tutorial/apollo-compatibility-mode.png and b/docs/images/tutorial/apollo-compatibility-mode.png differ
diff --git a/docs/router/event-driven-federated-subscriptions-edfs/kafka.mdx b/docs/router/event-driven-federated-subscriptions-edfs/kafka.mdx
index 89ab9024..f24ecc40 100644
--- a/docs/router/event-driven-federated-subscriptions-edfs/kafka.mdx
+++ b/docs/router/event-driven-federated-subscriptions-edfs/kafka.mdx
@@ -134,5 +134,5 @@ subscription {
## System diagram
- 
+
\ No newline at end of file
diff --git a/docs/router/open-telemetry.mdx b/docs/router/open-telemetry.mdx
index 6cd532d0..71216622 100644
--- a/docs/router/open-telemetry.mdx
+++ b/docs/router/open-telemetry.mdx
@@ -182,7 +182,7 @@ telemetry:
-Yes, but this is currently limited to private backend applications e.g. subgraphs because we don't provide a secure mechanism to issue short-lived tokens in public applications like Web-Apps. Never expose your GRAPH\_TOKEN to the public. A possible solution to make this work is to run an [otelcollector](https://docs.newrelic.com/docs/more-integrations/open-source-telemetry-integrations/opentelemetry/collector/opentelemetry-collector-intro/) and utilize the export functionality to forward telemetry data to Cosmo Cloud. This will enable you to configure your own authentication layer and observe malicious behaviors. It is also a [recommended](https://docs.newrelic.com/docs/more-integrations/open-source-telemetry-integrations/opentelemetry/best-practices/opentelemetry-best-practices-browser/) approach to ingest data to multiple OTEL platforms.
+Yes, but this is currently limited to private backend applications e.g. subgraphs because we don't provide a secure mechanism to issue short-lived tokens in public applications like Web-Apps. Never expose your GRAPH\_TOKEN to the public. A possible solution to make this work is to run an [otelcollector](https://docs.newrelic.com/docs/more-integrations/open-source-telemetry-integrations/opentelemetry/collector/opentelemetry-collector-intro/) and utilize the export functionality to forward telemetry data to Cosmo Cloud. This will enable you to configure your own authentication layer and observe malicious behaviors. It is also a recommended approach to ingest data to multiple OTEL platforms.
diff --git a/docs/tutorial/deploy-federated-graphql-with-confidence.mdx b/docs/tutorial/deploy-federated-graphql-with-confidence.mdx
index fac50e98..5a84000e 100644
--- a/docs/tutorial/deploy-federated-graphql-with-confidence.mdx
+++ b/docs/tutorial/deploy-federated-graphql-with-confidence.mdx
@@ -1,12 +1,12 @@
---
title: "Deploy GraphQL Federation with Confidence"
-description: "Complete guide to deploying federated GraphQL - from schema validation and basic deployments to advanced canary strategies and production monitoring."
+description: "Complete tutorial to deploying federated GraphQL - from schema validation and basic deployments to advanced canary strategies and production monitoring."
icon: "rocket"
---
## What You'll Learn
-This guide will teach you how to safely deploy subgraphs in a federated GraphQL architecture. We'll start with the basics and build up to advanced deployment strategies, focusing on preventing production issues and maintaining system reliability.
+This tutorial will teach you how to safely deploy subgraphs in a federated GraphQL architecture. We'll start with the basics and build up to advanced deployment strategies, focusing on preventing production issues and maintaining system reliability.
@@ -297,7 +297,7 @@ ENV EXECUTION_CONFIG_FILE_PATH=/app/config.json
---
-All subsequent examples in this guide follow the **dynamic configuration approach** for simplicity. If you're using static configuration, you'll need to modify the examples to include router config building and deployment steps.
+All subsequent examples in this tutorial follow the **dynamic configuration approach** for simplicity. If you're using static configuration, you'll need to modify the examples to include router config building and deployment steps.
## Automated CI/CD Integration
diff --git a/docs/tutorial/from-zero-to-federation-in-5-steps-using-cosmo.mdx b/docs/tutorial/from-zero-to-federation-in-5-steps-using-cosmo.mdx
index f83fd238..04e1de18 100644
--- a/docs/tutorial/from-zero-to-federation-in-5-steps-using-cosmo.mdx
+++ b/docs/tutorial/from-zero-to-federation-in-5-steps-using-cosmo.mdx
@@ -1,6 +1,6 @@
---
title: "From Zero to Federation in 5 Steps using Cosmo"
-description: "This guide offers a hands-on introduction to Cosmo using a sample demo repository. You'll set up the demo subgraphs and Cosmo Router locally, allowing you to start querying right away."
+description: "This tutorial offers a hands-on introduction to Cosmo using a sample demo repository. You'll set up the demo subgraphs and Cosmo Router locally, allowing you to start querying right away."
icon: rocket
---
diff --git a/docs/tutorial/grpc-service-quickstart.mdx b/docs/tutorial/grpc-service-quickstart.mdx
index 6cfbf693..b109596f 100644
--- a/docs/tutorial/grpc-service-quickstart.mdx
+++ b/docs/tutorial/grpc-service-quickstart.mdx
@@ -1,6 +1,6 @@
---
title: "Deploy Your First gRPC Service"
-description: "This guide will walk you through the process of integrating a gRPC service into your router using Cosmo CLI templates."
+description: "This tutorial will walk you through the process of integrating a gRPC service into your router using Cosmo CLI templates."
sidebarTitle: Deploy Your First gRPC Service
icon: server
---
diff --git a/docs/tutorial/using-grpc-plugins.mdx b/docs/tutorial/using-grpc-plugins.mdx
index 6571d751..7a6b7bea 100644
--- a/docs/tutorial/using-grpc-plugins.mdx
+++ b/docs/tutorial/using-grpc-plugins.mdx
@@ -12,7 +12,7 @@ This tutorial is part of [Cosmo Connect](/connect/overview) and focuses on deplo
- [Cosmo CLI](/cli/intro) (minimum version: [0.90.1](https://github.com/wundergraph/cosmo/releases/tag/wgc%400.90.1)) installed and configured
- [Cosmo Router](/router/intro) (minimum version: [0.242.0](https://github.com/wundergraph/cosmo/releases/tag/router%400.242.0)) installed and configured to use Cosmo Cloud
-If you're new to Cosmo, you should start with the [Cosmo Cloud Onboarding](/getting-started/cosmo-cloud-onboarding) guide. This guide assumes you've created a federated graph and deployed and configured router(s) for it.
+If you're new to Cosmo, you should start with the [Cosmo Cloud Onboarding](/getting-started/cosmo-cloud-onboarding) guide. This tutorial assumes you've created a federated graph and deployed and configured router(s) for it.
## Overview