Accept generic/linux on update, expose them in the device-type meta list, and auto-pick zte_zxros when vendor changes from a placeholder type.
Co-authored-by: Cursor <cursoragent@cursor.com>
Managed NEs reuse stored credentials; unmanaged/LLDP placeholders get an IP and SSH/Telnet form. Selected links now show a clear highlight, and login page flare tweaks are included.
Co-authored-by: Cursor <cursoragent@cursor.com>
Filter add/layout/remove keeps MCP payloads small; tokens default MCP scopes and edit them in a modal with a compact help tip.
Co-authored-by: Cursor <cursoragent@cursor.com>
Paginate LLDP job items, surface port-traffic raw logs with a 300s default, harden topology discover/edit/zoom/fullscreen, and join mid-token CLI wraps before TextFSM.
Co-authored-by: Cursor <cursoragent@cursor.com>
Match ZXROS Scope/Holdtime columns, disable Netmiko cmd_verify on show commands, and do not SSH LLDP when vendor/device_type cannot be resolved.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use custom cli_templates plus community ntc-templates for LLDP and port traffic across ZTE/Huawei/Cisco/H3C/Juniper/Nokia, drop regex parsers, and surface Admin/Phy/Prot on port discover. Also batch-add topology NEs and tighten workbench branding.
Co-authored-by: Cursor <cursoragent@cursor.com>
Bastion hop success notices mention authentication failure count and were misread as target_auth_rejected.
Co-authored-by: Cursor <cursoragent@cursor.com>
Optional DDL used bare try/except, which left the migration txn aborted so alembic_version never stamped and config-sync APIs failed. Run best-effort statements inside SAVEPOINTs.
Co-authored-by: Cursor <cursoragent@cursor.com>
Brownfield tables still require task_id while ORM only wrote device_id; mirror both columns on write and relax the leftover constraint.
Co-authored-by: Cursor <cursoragent@cursor.com>
Modular split left discover_ports referencing settings without importing it, which raised NameError on pull-ports.
Co-authored-by: Cursor <cursoragent@cursor.com>
API /metrics and /health/ready now read a worker heartbeat when collectors are split out; WebCRT blocking I/O uses a dedicated executor so session pumps do not starve the default pool.
Co-authored-by: Cursor <cursoragent@cursor.com>
Default start_netx.ps1/sh now set NETX_RUN_INLINE_SCHEDULERS=false and launch netx_api.worker; stop scripts tear the worker down with the API.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep inline schedulers as the start_netx.ps1 default while bounding UME raw_json and pruning old NE collection dirs on startup.
Co-authored-by: Cursor <cursoragent@cursor.com>
Size DB pool, CLI budget, and WebCRT session caps for concurrent operators while keeping hard ceilings and env overrides.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the discover facade stable for routers/tests while fixing the missing infer_device_type_vendor import on UME target resolution.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep from netx_api.models import X working while grouping alarms, UME, managed NE, topology, auth, config sync, and port traffic tables.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep public facades stable while moving rules/apply/slices and policy/cycles/snapshots into focused modules.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the facade for callers, retarget unit-test patches to ne_session_connect, and fix the ConnectHandler coverage case to use a non-Cisco device type.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the public facade stable while moving device CRUD and sample/compare
logic into focused modules, and use naive UTC via timeutil plus FastAPI lifespan.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep thin facades for existing imports, tighten CSV import required columns, and restore Chinese WebCRT connection labels in status responses.
Co-authored-by: Cursor <cursoragent@cursor.com>
Extract channel/session modules and CLI guard, move UME sidebands out of main, and default NETX_RUN_INLINE_SCHEDULERS off so ops run python -m netx_api.worker.
Co-authored-by: Cursor <cursoragent@cursor.com>
Extract shared brownfield patches, add the legacy revision, and default to upgrade-head plus skip of duplicate inline DDL (with legacy fallback if Alembic fails).
Co-authored-by: Cursor <cursoragent@cursor.com>
Extract ume_support/ume_router and alarms_router so main stays startup-focused, add topology fabric/views import surfaces, and gate managed-NE writes by ne:write.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add capability RBAC, Alembic bootstrap, optional worker schedulers, and close public docs by default so lab installs stay usable without shared signing keys.
Co-authored-by: Cursor <cursoragent@cursor.com>
Make left-tree selection, hex browser, and sidebar chrome clearer while matching peers by hostname/ports instead of mgmt IP and reducing fabric-node insert deadlocks.
Co-authored-by: Cursor <cursoragent@cursor.com>
Unify live runners in /audit/tasks (including UME sync and connect tests), extend port-traffic compare past now via ahead_hours, and distinguish WebCRT connecting/ready/detached.
Co-authored-by: Cursor <cursoragent@cursor.com>
Fix unreadable collect-log contrast, surface errors on the Logs button, and let operators re-link a monitor to a chosen inventory NE without wiping samples.
Co-authored-by: Cursor <cursoragent@cursor.com>
Mirror LLDP job retention so finished sync cycles are pruned by policy while keeping per-NE config version history separate.
Co-authored-by: Cursor <cursoragent@cursor.com>
Treat Fabric as an inventory sheet for role/region tagging and slices; detach fabric links on managed/UME delete instead of cascading map deletes. Extend collection to all managed and UME NEs, show NE source in management, and refine canvas vendor icon tones.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add fabric link browsing, conservative job retention, hour-based intervals, multi-worker start locking, and trim canvas discover UI in favor of the LLDP page.
Co-authored-by: Cursor <cursoragent@cursor.com>
Move scheduled discovery under Network → LLDP links, mark absent edges missing after one successful scan, purge only after four miss cycles, and expose unmatched/raw job detail.
Co-authored-by: Cursor <cursoragent@cursor.com>
Stream large uploads/downloads with progress, raise the size cap, and support drag-drop folders plus fixed/resizable columns.
Co-authored-by: Cursor <cursoragent@cursor.com>
Open SFTP on the live session transport after SSH connect, pass the target path on every list refresh, and use folder/file icons in the browser panel.
Co-authored-by: Cursor <cursoragent@cursor.com>
Reuse detached sessions on reconnect, mount only the active tab, surface backpressure drops, gate SFTP for unsupported targets, and polish attach replay, find/recording performance, and terminal i18n.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add quick-connect sessions with credential retry, raw interactive drivers, bootstrap banner replay, Huawei telnet prompt cleanup, and session rename/delete in the tree.
Co-authored-by: Cursor <cursoragent@cursor.com>
Persist board/panel layouts server-side, open each board outside the network shell so workbench reloads do not refresh walls, and fix mapped-baseline chart overlay plus fullscreen fit.
Co-authored-by: Cursor <cursoragent@cursor.com>