- add Docker deployment for independent jarca-ledger container - enable FastMCP streamable-http runtime configuration - document dcy-013, REQ-019, and BAT-015 verification evidence - update structure/runtime baselines and deployment runbook
1.7 KiB
1.7 KiB
BAT-015 Design
Architecture Decision
jarca-ledger is deployed as an independent Docker service that directly serves FastMCP streamable-http transport on port 8000. genichin-agent is no longer the process launcher for Jarca Ledger MCP. It may remain a client, but the Jarca Ledger service lifecycle belongs to Docker.
Runtime topology
finance-agent / Hermes client
│
│ Streamable HTTP MCP
▼
http://192.168.55.253:8000/mcp
│
▼
jarca-ledger container
├─ jarca-ledger-mcp FastMCP server
├─ /data/ledger.sqlite3
└─ Docker healthcheck on 127.0.0.1:8000
│
▼
Synology host /volume1/docker/jarca-ledger/data
Transport contract
- Default remains
stdiowhen no env is set. JARCA_MCP_TRANSPORT=streamable-httpruns Uvicorn/FastMCP network transport.JARCA_MCP_HOST=0.0.0.0,JARCA_MCP_PORT=8000,JARCA_MCP_STREAMABLE_HTTP_PATH=/mcpdefine the Docker service endpoint.- Tool names and tool payload contracts remain unchanged.
Data migration design
- Source:
jarca:/root/.local/share/jarca/ledger.sqlite3 - Target:
jarca-ledger:/data/ledger.sqlite3 - Snapshot method: SQLite
Connection.backup()to avoid copying a live DB mid-write. - Pre-replacement safety: back up the new empty
/data/ledger.sqlite3under/data/backups/pre_migration_empty_<timestamp>.sqlite3. - Verification: sha256,
PRAGMA integrity_check, table counts, MCPget_ledger_db_status.
Security and exposure boundary
- This batch exposes MCP only on the Synology host/internal network port mapping
8000:8000. - Internet exposure, reverse proxy, TLS, and auth policy are not included and must be handled as a separate approved change before external access.