docs: drop removed token-exchange mode; deprecate superseded auth ADRs

The OAuth token-exchange deployment mode was removed (ADR-022) and has no
implementation — only a vestigial `enable_token_exchange` flag remains. Its
documentation still presented it as a usable mode, which misleads self-hosters.
The only supported deployment modes are single_user_basic, multi_user_basic,
and login_flow.

Token-exchange removals (how-to/config for a removed mode):
- delete docs/CRITICAL-TOKEN-EXCHANGE-PATTERN.md
- delete docs/oauth-architecture-comparison.md (orphaned; labelled the removed
  pass-through mode as "current implementation")
- env.sample: drop the "OAUTH TOKEN EXCHANGE MODE" section
- docker-compose.yml: drop ENABLE_TOKEN_EXCHANGE/TOKEN_EXCHANGE_CACHE_TTL from
  the keycloak service (dead flags)
- docs/webhook-management-guide.md: drop the token-exchange deployment section
- docs/configuration-migration-v2.md: drop the token-exchange migration scenario
- docs/observability.md: drop the never-emitted mcp_oauth_token_exchange_total

Auth ADR status corrections:
- ADR-004: Draft -> Superseded by ADR-022/ADR-023 (token-exchange/federated
  design not adopted); note the three supported modes.
- ADR-002: extend the deprecation pointer to ADR-022/ADR-023.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Chris Coutinho
2026-06-14 11:49:45 +02:00
co-authored by Claude Opus 4.8
parent 64e50c0bcc
commit 16784d6fd4
9 changed files with 13 additions and 780 deletions
+11 -1
View File
@@ -1,6 +1,16 @@
# ADR-004: Federated Authentication Architecture for Offline Access
**Status**: Draft
> **⚠️ DEPRECATED / superseded.** The token-exchange and dual-flow "federated
> authentication" design described here was **not adopted**. The MCP server's
> auth was consolidated in [ADR-022](ADR-022-deployment-mode-consolidation.md)
> (Login Flow v2) and [ADR-023](ADR-023-oauth-as-proxy.md) (OAuth AS proxy).
> The only supported deployment modes are **`single_user_basic`**,
> **`multi_user_basic`**, and **`login_flow`** — there is no token-exchange mode.
> The durable ideas from this ADR (MCP server as its own OAuth client; token
> **audience** validation) live on via [ADR-005](ADR-005-token-audience-validation.md)
> and ADR-023.
**Status**: Superseded by ADR-022 and ADR-023 (token-exchange design not adopted)
**Date**: 2025-11-02
**Supersedes**: ADR-002