Skip to content

v0.2.7-pre

Choose a tag to compare

@Shareed2k Shareed2k released this 06 May 08:35

🚀 Feature: Embedded Web UI (honey web)
This Release introduces an embedded, locally-served Web UI for Honey to provide a comprehensive graphical interface for managing and connecting to your infrastructure.
Key Features:

  • honey web Command: Starts an embedded HTTP server (loopback-only by default) with token-based authentication.
  • Visual Search & Discovery:
    • Execute parallel searches across multiple cloud providers (AWS, GCP, Proxmox) and Kubernetes/Consul instances directly from the UI.
    • Robust filtering with Provider and Backend dropdowns.
    • Sortable, paginated host records table.
  • Integrated WebSocket Terminal (/ws/ssh):
    • Open a direct terminal to any SSH node or Kubernetes pod (ephemeral exec TTY) right in the browser using xterm.js.
    • Auto-resizes seamlessly based on window dimensions.
  • Bulk Command Execution & CUE Recipes:
    • Select multiple hosts to run arbitrary shell commands simultaneously.
    • Dedicated section for CUE recipes with dry-run capabilities and execution log previews.
  • Drag-and-Drop SFTP Uploads:
    • Drag and drop files onto the hosts table to initiate fast SFTP transfers.
    • Real-time upload progress tracking.
  • Configuration Management:
    • Raw YAML editor with save/reload support directly altering your local config.yaml.
    • Structured CRUD editor (JSON-based) to seamlessly manage Backend definitions (GCP, AWS, K8s, Consul, Proxmox).
  • Comprehensive Documentation:
    • Added web-ui documentation page via Docusaurus and regenerated CLI documentation to reflect the new commands and APIs.
      Technical Details:
  • Frontend: Built with React, Vite, and xterm.js. The assets are bundled and statically served out of internal/webserver/static.
  • Backend: Pure Go net/http backend providing a robust REST API (/api/v1/search, /api/v1/config/backends, etc.) and Websocket endpoints that proxy the existing CLI commands.
  • Security & Auth: The server binds exclusively to localhost (127.0.0.1) by default and generates a random session token via URL query/HTTP Header (X-Honey-Token) to prevent CSRF and local unauthorized access.