hero

Web Debug Protocol

Union debug protocol for modern web applications. Any language, any framework.

Get Started

Any language

Protocol can be implemented on any programming language

Framework plug and play

Install bundle for your favorite web framework and its done

Any client

Working in browser dev-tools, API clients like "postman", console utils like curl, etc..

Open source and free

This is open source protocol with MIT license

From scratch..

..can be implemented in hour. Easy as like falling off a log

Scalable

Microservice ready, you can debug nested requests

work in progress

Protocol, scheme, documentation and transports currently in draft

See contact page for any issues, ideas, proposal, etc..

# How it works

# 1. Client makes Request to Application:

https://example.com/hello

# 2. Application return Response with 2 additional headers:

X-Http-Debug-Id: ae1d1530-7c2c-4ff7-bfeb-70f80c8bc7ed
X-Http-Debug-Api: /_profile/?id=

# 3. Client makes request to X-Http-Debug-Api url

https://example.com/_profile/?id=ae1d1530-7c2c-4ff7-bfeb-70f80c8bc7ed

# 4. Application server return debug/profile information for first request

{
  "uuid": "ef95a542-25a3-4f71-a0e9-640c92f43813",
  "version": 1,
  "events": [

    {
      "type": "log",
      "time": 1547058561177,
      "importance": 1,
      "tags": [
        "php:app_03"
      ],
      "payload": {
        "message": "User X is try to login to admin panel"
      }
    },

    {
      "type": "query",
      "time": 1547058563454,
      "duration": 18,
      "importance": 4,
      "payload": {
        "target": "mysql",
        "query": "UPDATE users SET last_loggin = ?dt WHERE id = ?id",
        "syntax": "sql"
      },
      "success": false,
      "nested": [
        {
          "type": "log",
          "time": 1547058571245,
          "importance": 5,
          "payload": {
            "message": "Mysql server is going away!"
          }
        },
        {
          "type": "email",
          "time": 1547058583422,
          "payload": {
            "subject": "Mysql is down!",
            "body": "<h1>Hello admin</h1> <p>mysql is down.</p>",
            "from": "no-reply@example.com",
            "to": "admin@example.com"
          }
        }
      ]
    }
  ]
}