A Cyberpunk-Themed Arista Networks API GUI (Go + Wails)
Arista Engine is a standalone GUI application for exploring and managing the full Arista Networks API ecosystem, including:
- Arista eAPI (EOS command API)
- Arista CloudVision APIs (gRPC + REST)
- EOS Management APIs (telemetry, streaming, resources)
Built with Go (backend) and Wails (desktop/webview UI), the engine provides a cyberpunk neon cockpit where network engineers can browse, query, and export the entire documented API surface without needing to memorize endpoints.
Key capabilities:
- Automatic API Enumeration: pulls the full list of available endpoints from Arista docs/metadata.
- Connection Testing (reachability, TLS posture, authentication).
- API Explorer with JSON editor and endpoint autocomplete.
- Response Viewer (Table, JSON, Raw).
- Export system (JSON, CSV, PDF).
- Safe policy mode to restrict destructive operations.
- Add, edit, delete Arista devices or controllers.
- Save URL, token, TLS mode, tags.
- Credentials encrypted at rest.
- Validate API URL & TLS.
- Test token authentication.
- Fetch metadata: EOS version, platform, CloudVision cluster info.
- Automatic discovery of all supported API endpoints.
- Categorized by eAPI, CloudVision REST, CloudVision gRPC, Streaming APIs.
- Searchable catalog with descriptions, methods, and schemas.
- Endpoint dropdown with autocomplete from enumerated API catalog.
- Choose HTTP method (GET/POST/PUT/DELETE).
- JSON editor for body input.
- Prebuilt templates for common operations.
- Table View: parse structured JSON to neon grid.
- JSON View: syntax-highlighted glowing editor.
- Raw View: plain text body.
- Export results β JSON, CSV, PDF.
- Each API request and response stored in a query log.
- Optional audit trail for compliance.
arista-engine/
ββ cmd/
β ββ arista_engine/ # app entrypoint (Wails bootstrap)
ββ internal/
β ββ client/ # HTTP client, retries, connection tests
β ββ core/ # domain models, API catalog, request log
β ββ enum/ # full API enumeration + schema discovery
β ββ store/ # persistence (BoltDB/SQLite)
β ββ uiapi/ # Go <-> Frontend bindings
β ββ util/ # helpers (export, logging, csv/pdf)
ββ ui/ # frontend (Wails): Svelte/React/Vue
β ββ src/
β ββ package.json
ββ configs/
β ββ templates.json # command templates
ββ README.md
Flow
- Add endpoint (URL + token).
- Connection test runs.
- Full API surface enumerated (endpoints pulled into catalog).
- Explorer lets you query any endpoint directly.
- Responses displayed in Table/JSON/Raw.
- Export results to JSON/CSV/PDF.
Endpoint Config
type Endpoint struct {
ID string `json:"id"`
Name string `json:"name"`
URL string `json:"url"`
Token string `json:"token"`
TLSMode string `json:"tlsMode"` // strict, hybrid, plain
Tags []string `json:"tags"`
CreatedBy string `json:"createdBy"`
Created time.Time`json:"created"`
}
API Catalog Entry
type APIDefinition struct {
ID string `json:"id"`
Service string `json:"service"` // eapi, cloudvision, telemetry
Method string `json:"method"` // GET/POST/PUT/DELETE
Path string `json:"path"`
Description string `json:"description"`
Params []string `json:"params"`
}
API Query Record
type APIQueryRecord struct {
ID string `json:"id"`
EndpointID string `json:"endpointId"`
Method string `json:"method"`
Path string `json:"path"`
Body map[string]any `json:"body,omitempty"`
Status int `json:"status"`
Response map[string]any `json:"response"`
Timestamp time.Time `json:"timestamp"`
}
- Neon table of endpoints with connection status.
- Status: β
Connected |
β οΈ Warning | β Failed.
- Full list of all enumerated APIs.
- Filter by service (eAPI, CloudVision, Telemetry).
- Click to load into Explorer.
- Endpoint dropdown.
- Method selector.
- Path input (autocomplete from catalog).
- JSON body editor.
- Run button (cyan glow).
- Table Tab: parsed structured data.
- JSON Tab: glowing syntax highlight.
- Raw Tab: raw text stream.
- Buttons: JSON | CSV | PDF.
- Credentials encrypted locally.
- TLS validation enforced by default.
- Optional policy rules to block dangerous calls:
[[rules]]
id = "deny-config-push"
resource = "arista.api"
action = "exec"
when = { path="/command-api", bodyContains="configure terminal" }
effect = "deny"
- Go 1.22+
- Node.js 18+
- Wails v2 CLI (
go install github.com/wailsapp/wails/v2/cmd/wails@latest
)
git clone https://github.com/<your-org>/arista-engine.git
cd arista-engine
cd frontend && npm install && cd ..
wails build
wails dev
- Launch Arista Engine.
- Add an API endpoint (URL, token).
- Run Connection Test.
- Browse full API catalog (enumerated endpoints).
- Run API calls via Explorer.
- View results in Table/JSON/Raw.
- Export results to JSON/CSV/PDF.
- Endpoint management.
- Connection testing.
- Full API enumeration (eAPI + CloudVision + Telemetry).
- Rich Explorer with autocomplete.
- Response Viewer tables for common schemas.
- Export (JSON/CSV/PDF).
- Policy enforcement.
- Command templates system.
- Comprehensive logging and audit trail.
flowchart LR
A[Endpoint Manager] -->|Test| B(API Enumerator)
B -->|Catalog| C[API Explorer]
C -->|Request| D(Client)
D -->|Call| E[Arista APIs]
E -->|Response| F(Response Viewer)
F -->|Export| G[JSON/CSV/PDF]
D -->|Log| H[Query Log]
MIT License β free to use, modify, and distribute.
Arista Engine is designed to map, browse, and interact with the entire Arista API surface in a single neon-themed cockpit. Discover everything. Test anything. Export anywhere.
The application features a cyberpunk aesthetic with:
- Dark background (#1a1a1a) for reduced eye strain
- Vivid pink accents (#ff00ff) for primary actions and highlights
- Hot pink (#ff69b4) for secondary elements
- Deep pink (#ff1493) for accent colors
- Glowing effects and neon borders for that authentic cyberpunk feel
- Monospace fonts for technical data display
- Grid-based layouts for organized information display
The design is inspired by classic cyberpunk interfaces while maintaining excellent usability and accessibility.