Files
banks2ff/specs/debug-logging.md

1.6 KiB

Debug Logging Specification

Goal

Implement comprehensive HTTP request/response logging for debugging API interactions between banks2ff and external services (GoCardless and Firefly III).

Requirements

Output Format

Each HTTP request-response cycle generates a single text file with the following structure:

  1. Curl Command (at the top in comments)

    • Full curl -v command that reproduces the exact request
    • Includes all headers, authentication tokens, and request body
    • Properly escaped for shell execution
  2. Complete Request Data

    • HTTP method and URL
    • All request headers (including Host header)
    • Full request body (if present)
  3. Complete Response Data

    • HTTP status code and reason
    • All response headers
    • Full response body

File Organization

  • Files stored in ./debug_logs/{service_name}/ directories
  • Timestamped filenames: YYYYMMDD_HHMMSS_REQUESTID.txt
  • One file per HTTP request-response cycle
  • Service-specific subdirectories (gocardless/, firefly/)

Data Visibility

  • No filtering or masking of any data
  • Complete visibility of all HTTP traffic including:
    • Authentication tokens and credentials
    • Financial transaction data
    • Personal account information
    • API keys and secrets

Activation

  • Enabled via --debug command-line flag
  • Files only created when debug mode is active
  • No impact on normal operation when debug mode is disabled

Use Case

Human debugging of API integration issues where complete visibility of all HTTP traffic is required to diagnose problems with external service interactions. specs/debug-logging.md