Skip to content

How to evaluate online vs offline runtime modes

Use this guide for a reproducible deep dive before release reviews and operational changes.

Goal

Compare behavior differences between online and offline operation modes, including endpoint availability and sync capabilities.

Prerequisites

  • deployment.json is present
  • Docker is running
  • Dependencies installed with uv sync

Phase 1: Evaluate offline mode

  1. Deploy in offline mode:
uv run python deploy_multi_tenant.py --mode offline
  1. Verify core health and MCP metadata:
curl -s http://localhost:42042/health
curl -s http://localhost:42042/mcp.json
  1. Verify dashboard is not available:
curl -i http://localhost:42042/dashboard | head -n 20
  1. Verify retrieval path still works:
uv run python debug_multi_tenant.py --host localhost --port 42042 --tenant drf --test search

Phase 2: Evaluate online mode

  1. Redeploy in online mode:
uv run python deploy_multi_tenant.py --mode online
  1. Verify dashboard is available:
curl -i http://localhost:42042/dashboard | head -n 20
  1. Trigger sync and verify indexing path:
uv run python trigger_all_syncs.py --host localhost --port 42042 --tenants drf --force
uv run python trigger_all_indexing.py --tenants drf
  1. Re-run retrieval validation:
uv run python debug_multi_tenant.py --host localhost --port 42042 --tenant drf --test search

Expected behavior summary

Surface Offline Online
/mcp root tools available available
/health available available
/dashboard unavailable or 503 available
Sync trigger endpoints blocked available
Search/fetch via MCP available available

Why this evaluation works

It maps directly to mode-gated route behavior in src/docs_mcp_server/app_builder.py and lets you demonstrate separation of retrieval vs operational mutation surfaces.