netapi: Multi-Vendor Network CLI
Problem
Network engineers manage multiple vendor platforms daily:
-
Cisco ISE - 802.1X, guest portals, posture
-
pfSense - Firewalls, DNS, VPN
-
Cisco WLC - Wireless controllers
-
Cloudflare - DNS, Pages, Access
-
Keycloak - Identity federation
Each has its own API, authentication method, and CLI (or none at all).
Result: Context switching, credential sprawl, inconsistent automation.
Solution
netapi provides a unified CLI that speaks to all platforms with consistent patterns:
# Same pattern, different platforms
netapi ise sessions
netapi pfsense dns list
netapi wlc clients
netapi cloudflare zones
netapi keycloak users
Architecture
┌─────────────────────────────────────────────────────────────┐
│ netapi CLI │
├─────────────────────────────────────────────────────────────┤
│ ise │ pfsense │ wlc │ cloudflare │ keycloak │
├───────────┴───────────┴───────────┴────────────┴───────────┤
│ Core Framework │
│ • Credential Management (dsource integration) │
│ • Output Formatting (table, json, csv) │
│ • Error Handling │
│ • Shell Completions │
├─────────────────────────────────────────────────────────────┤
│ Platform Clients │
│ • REST API wrappers │
│ • Authentication handling │
│ • Response parsing │
└─────────────────────────────────────────────────────────────┘
│
▼
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ ISE API │ │ pfSense │ │ WLC API │ │Cloudflare│ │ Keycloak │
│ REST/ERS │ │ PHP API │ │ REST │ │ REST │ │ REST │
└──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘