Skip to content
/ sonar Public

A Tool for Testing and Inspecting Webhooks

License

Notifications You must be signed in to change notification settings

tobagin/sonar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

66 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Sonar

A modern desktop webhook inspector for developers.

Sonar Application

Get it on Flathub Support me on Ko-Fi

πŸŽ‰ Version 2.4.0 - Mobile Adaptation

Sonar 2.4.0 brings full mobile support with a responsive layout.

πŸ†• What's New in 2.4.0

  • Mobile Adaptation: Fully responsive layout for mobile devices.
  • Refined UI: Improved request list and action buttons.

For detailed release notes and version history, see CHANGELOG.md.

Features

Core Features

  • Native Experience: Built with Vala, GTK4, and Libadwaita for a native GNOME feel.
  • Request Inspection: Detailed breakdown of HTTP headers, payload, and query params.
  • Search & Filter: Powerful filtering by method, content-type, and full-text search.

User Experience

  • Request Replay: Resend any captured webhook to custom URLs.
  • Templates: Save requests as reusable templates for testing.
  • Keyboard Shortcuts: Comprehensive shortcuts for productivity (Ctrl+?).
  • Dark Mode: Fully supports system-wide dark theme preference.

Security

  • Encrypted Storage: Credentials never stored in plain text.
  • DoS Protection: Built-in rate limiting traversal protection.
  • Safe Forwarding: SSRF prevention and signature validation.

Building from Source

Flatpak (Recommended)

Development Version

# Clone the repository
git clone https://github.com/tobagin/sonar.git
cd sonar

# Build and install development version
./scripts/build.sh --dev --install
flatpak run io.github.tobagin.sonar.Devel

From Source

Requirements: Vala, GTK4, Libadwaita, libsoup 3.0, json-glib, libgee, libsecret, Meson.

git clone https://github.com/tobagin/sonar.git
cd sonar
meson setup builddir
meson compile -C builddir
meson install -C builddir

Usage

Basic Usage

Launch Sonar from your applications menu or run:

flatpak run io.github.tobagin.sonar.Devel
  1. Start Tunnel: Click "Start Tunnel" to create a public URL.
  2. Configure: Use the URL in your webhook provider.
  3. Inspect: Watch requests arrive in real-time.

Mocking Responses

  1. Open the menu and select Mock Response (or press Ctrl+M).
  2. Enable mocking and configure the desired status code and body.
  3. Incoming requests will now receive your simulated response.

Keyboard Shortcuts

  • Ctrl+T - Start/Stop Tunnel
  • Ctrl+U - Copy Public URL
  • Ctrl+L - Clear Requests
  • Ctrl+H - Toggle History
  • Ctrl+M - Mock Response Dialog
  • Ctrl+, - Preferences
  • F1 - About

Architecture

Sonar is built using modern GNOME technologies:

  • Vala: For high performance and type safety.
  • GTK4 / Libadwaita: For the user interface.
  • libsoup 3: For robust HTTP server/client capabilities.
  • JSON-GLib: For efficient JSON parsing and generation.

Privacy & Security

Sonar is designed to respect your privacy and security:

  • Local First: All request data is stored locally on your machine.
  • Encrypted Secrets: Auth tokens are stored in the system keyring.
  • Sandboxed: Distributed as a Flatpak with strict permissions.

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

License

Sonar is licensed under the GNU General Public License v3.0.

Acknowledgments

  • ngrok: For providing the tunneling service.
  • GNOME: For the excellent GTK4 and Libadwaita frameworks.
  • Vala: For the powerful programming language.

Screenshots

Main Window Tunnel Started Received Requests
Main Window Tunnel Started Received Requests
History View Clear Data About Dialog
History Clear Data About

Sonar - A modern desktop webhook inspector for developers.

About

A Tool for Testing and Inspecting Webhooks

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •