Security & limits

Security

  • Console access requires existing agent authentication (same session/token as other API calls).
  • EVE OpConsole restrictions still apply on the EVE side.
  • observe mode rejects writes at the agent — clients cannot override by ignoring mode.
  • exclusive mode allows one writer; V1 has no steal of an existing exclusive lease.
  • session_id values are opaque handles, not secrets — but treat them like capability tokens within an authenticated session.
  • Stream tickets are one-use, 64-hex, 30 s TTL, redeemed over HTTP 101 Upgrade: eve-telnet.
  • Transport internals (loopback Telnet host/port, raw tickets) are not exposed in public API fields or MCP output.
  • send_secret is redacted in responses, transcripts, and MCP payloads.
  • V1 provides no durable transcript or audit log of console activity.

General agent TLS and token guidance: Concepts — Security, DevOps — Security.

V1 scope and limitations

Explicit non-goals — do not infer unsupported behavior:

Not in V1 Notes
Vendor terminal profiles No built-in IOS/NX-OS/Junos/etc. parsers
Structured command parsing Regexp expect only
SSH / NETCONF / gNMI layer Console is complementary, not a replacement
Durable console transcript 64 KiB Hub ring only; no log collector
Automatic AI session selection Explicit session_id required
MCP interactive PTY Bounded exec/wait/run/history only
watchConsole API CLI watch multiplexes observe streams locally
Session persistence Lost on agent restart
Silent Telnet reconnect Underlying loss closes the Hub path
Exclusive-session steal Writer must release first
Terminal resize redesign Out of V1 scope
Session count beyond Hub cap Max 64 concurrent Hubs

Ansible integration — future / not implemented

A possible future direction ( not part of Console Automation V1 ):

  • An eve-iac Ansible collection using the agent HTTPS API
  • Console-backed Day-0 connection and bootstrap before management IP exists
  • Patterns similar to network_cli persistent connections

No Ansible plugin or module exists today. Do not plan production workflows around Ansible until shipped and documented separately.

Agent shutdown

SIGINT / SIGTERM stop accepting HTTP, then http.Server.Shutdown (15s bound), then leftover stream tickets are invalidated and Hubs close (Telnet TCP and waiters). http.ErrServerClosed is a normal exit. Hijacked eve-telnet streams are not waited on by Shutdown; Hub close unblocks them.