```json
{
  "entry_points": [
    "app/main.py",
    "app/proxy.py"
  ],
  "data_flow": [
    "Client -> app/proxy.py (accepts /v1/chat/completions)",
    "app/proxy.py -> app/store.py (records metadata)",
    "app/proxy.py -> Upstream llama.cpp (forwards request)",
    "app/store.py -> SQLite (inserts runs and llm_requests)",
    "SQLite -> app/reports.py (aggregates stats)",
    "app/reports.py -> app/main.py (dashboard pages)",
    "app/redaction.py -> app/main.py (previews)"
  ],
  "risks": [
    "app/proxy.py: Accepts and forwards requests to upstream llama.cpp without validation, risking prompt injection or proxy abuse.",
    "app/store.py: Writes to SQLite; potential SQL injection if queries are not parameterized, or data integrity issues from unvalidated input.",
    "app/redaction.py: Removes secrets before previews; flawed logic could lead to secret leakage.",
    "app/reports.py: Aggregates stats from SQLite; potential SQL injection if raw queries are used."
  ]
}
```