Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
4d52c3b
docs: Add ADRs for session-based auth caching and MCP gateway archite…
jdutton Dec 24, 2025
c13031f
feat: Add ADR 006 - Session-Based Authentication Caching
jdutton Dec 24, 2025
24123a5
fix: Complete ADR 006 implementation - fix all remaining test failures
jdutton Dec 25, 2025
ea901d1
refactor: Eliminate code duplication in OAuth provider tests
jdutton Dec 26, 2025
0d2bb6d
feat: Add jscpd code duplication detection to validation pipeline
jdutton Dec 29, 2025
20bd629
fix: Resolve parallel test port conflicts in validation pipeline
jdutton Dec 29, 2025
e1738ac
refactor: Eliminate all test code duplication (41 → 0 NEW clones)
jdutton Dec 29, 2025
0ae7b52
refactor: Complete Phase 5 deduplication - eliminate 307 lines across…
jdutton Dec 29, 2025
326ee10
feat: Add ESLint max-nested-callbacks rule to catch SonarQube brain-o…
jdutton Dec 29, 2025
bf6629f
fix: Resolve all ESLint warnings and improve code quality
jdutton Dec 30, 2025
130360e
fix: Resolve SonarQube brain-overload issues (keep necessary type ass…
jdutton Dec 30, 2025
bccfdc5
fix: Reduce nesting in stdio.system.test.ts LLM tools test
jdutton Dec 30, 2025
a8796ca
refactor: Extract shared OAuth token utilities to eliminate code dupl…
jdutton Dec 30, 2025
90aa343
fix: Resolve SonarQube brain-overload and type assertion issues
jdutton Dec 30, 2025
4030468
refactor: Eliminate factory pattern duplication (163 lines removed)
jdutton Dec 30, 2025
f1542a1
fix: Reduce nesting in stdio.system.test.ts to meet 4-level limit
jdutton Dec 30, 2025
d8a7abd
refactor: Eliminate OAuth token store duplication (195 lines removed)
jdutton Dec 30, 2025
0c9b809
fix: Use dynamic port in system tests to prevent CI failures
jdutton Dec 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 7 additions & 9 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,6 @@ HTTP_HOST=localhost
# OAUTH_SCOPES=openid,profile,email

# ===== Security Configuration =====
# Token Encryption Key (REQUIRED - Phase 1 Security)
# AES-256-GCM encryption for all token storage (32-byte base64-encoded key)
# Generate with: node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
# TOKEN_ENCRYPTION_KEY=your_256bit_encryption_key_here

# Use HTTPS in production
REQUIRE_HTTPS=false

Expand Down Expand Up @@ -88,11 +83,14 @@ REQUIRE_HTTPS=false
# Local: redis://localhost:6379
# REDIS_URL=redis://localhost:6379

# Redis key prefix for multi-app isolation (default: no prefix)
# Set this to run multiple MCP apps on the same Redis instance without key conflicts
# Example: 'mcp-main' creates keys like 'mcp-main:oauth:client:abc123'
# Redis key prefix for multi-tenancy support (default: 'mcp' per ADR 006)
# Set this to run multiple MCP servers on the same Redis instance without key conflicts
# Examples:
# 'mcp-server-1' creates keys like 'mcp-server-1:oauth:client:abc123'
# 'mcp-dev' for development environment
# 'mcp-prod' for production environment
# Note: Colon separator is added automatically if not present
# REDIS_KEY_PREFIX=mcp-persistence
# REDIS_KEY_PREFIX=mcp

# ===== LLM Provider Configuration =====
# At least one provider is required for MCP tool functionality
Expand Down
Loading
Loading