Register oclaw_alarm_forwarder in background tasks with pause/resume, emit rt:/ws:/fwd: codes for last_error, and translate them in the UI for English and Chinese.
Co-authored-by: Cursor <cursoragent@cursor.com>
ConnectHandler is a factory function in current Netmiko; subclass the CLASS_MAPPER driver (e.g. ZteZxrosSSH) when wrapping a pre-authenticated Paramiko session.
Co-authored-by: Cursor <cursoragent@cursor.com>
OpenSSH treats the last @ as user/host separator, so the SSH username must be hop@target@ip without duplicating hop_host. Legacy templates with {hop_host} are stripped automatically; connect logs now show bastion_ssh_cli for comparison with manual ssh.
Co-authored-by: Cursor <cursoragent@cursor.com>
ZTE-TSM and similar bastions reject standard SSH password auth and require Vault password via keyboard-interactive; connect over an authenticated Paramiko session instead of re-handshaking with Netmiko.
Co-authored-by: Cursor <cursoragent@cursor.com>
Match key alerts by optional inventory ne_types, add edit dialog to update device types on existing rules, and keep card pager controls on one row.
Co-authored-by: Cursor <cursoragent@cursor.com>
Aggregate push counts per monitor rule, add enabled PATCH and paginated filtered list API/UI so keyword rules show correct stats without deleting.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use starts_with() instead of LIKE kw:% and run each DDL step in its own
transaction so match_type/match_value columns are added reliably.
Co-authored-by: Cursor <cursoragent@cursor.com>
Make forward-on-clear a global monitor toggle, run key-alert DDL in an
isolated startup transaction, and fix HelpHint popovers plus API errors
when the server returns non-JSON responses.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add description keyword matching alongside notificationId rules, require
per-rule labels, and improve the AI monitor form layout and clear-on-push UX.
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove hop columns from the import template and stop applying hop settings during import; use Batch add proxy instead.
Co-authored-by: Cursor <cursoragent@cursor.com>
Allow creating/importing NEs without target password for bastion-managed workflows, and support optional hop_* columns in bulk import templates.
Co-authored-by: Cursor <cursoragent@cursor.com>
Support composite-username bastion login for automated connect-test and exec, with bastion-managed or manual target credential modes.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use /usr/local/nodejs/node-v24.16.0-linux-x64 for web dev by default; add --api-only to start API without Node on the host.
Co-authored-by: Cursor <cursoragent@cursor.com>
Change Linux default web port to 8505, add NODE_CMD/NPM_CMD support with version check, and declare Node 20.19+ in web/package.json engines.
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove venv requirement, default PYTHON_CMD to /usr/local/python_env_new/bin/python3, and fix web startup without bash -lc. Add .gitattributes to keep shell scripts LF.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add bash scripts to start/stop netx API (8890) and Vite web (8055) with PID/log files under scripts/.run.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add a guarded managed-ne exec endpoint for oclaw ops tools to login managed devices and run read-only CLI safely.
Include request schema and unit tests for command guardrails and execution flow.
Co-authored-by: Cursor <cursoragent@cursor.com>
Persist full connect test logs (connect_detail) with NE UI detail modal.
Add Huawei/Cisco jump CLI templates and generic CLI hop session path.
Probe Cisco hostname via show configuration | include hostname (60s timeout).
Co-authored-by: Cursor <cursoragent@cursor.com>
Support hop_vendor=linux via Paramiko direct-tcpip tunnel; ZTE CLI hop unchanged. UI hop type selector and distinct list badges.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add POST /v1/managed-ne/batch-hop, shared HopProxyFields form, and toolbar button next to connectivity test.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add hop fields and encrypted credentials, unified Netmiko session factory with ZTE ssh/telnet CLI templates and secondary auth, wire connect/collect paths, and NE management UI with auto-suggested jump commands.
Co-authored-by: Cursor <cursoragent@cursor.com>
Treat timezone-less ISO timestamps from connect_tested_at as UTC before formatting so NE test time renders correctly in the user's system timezone.
Co-authored-by: Cursor <cursoragent@cursor.com>
Default the UME NE list and current alarms sections to collapsed state and add explicit expand/collapse toggles for cleaner initial layout.
Co-authored-by: Cursor <cursoragent@cursor.com>
Avoid false running-state conflicts when starting draft jobs, block overlapping NE runs across jobs, and default the create panel to collapsed for cleaner task-first operation.
Co-authored-by: Cursor <cursoragent@cursor.com>
Allow selecting multiple eligible NEs and adding them into the selected list in one action, while keeping single-item add for precise control.
Co-authored-by: Cursor <cursoragent@cursor.com>
Create collection jobs without auto-running; add /start for first run and re-run. Merge create form with filterable NE picker and selected list.
Co-authored-by: Cursor <cursoragent@cursor.com>
Defer collection scheduling to BackgroundTasks after commit; claim pending runs atomically with retries. Only handle focus-module broadcasts for the matching moduleId so opening one module does not rewrite other tabs.
Co-authored-by: Cursor <cursoragent@cursor.com>
Fix pending mislabeled as fail due to timezone and queue stale checks, show full error details, sync live progress counts, and add retry-failed endpoint for failed NEs only.
Co-authored-by: Cursor <cursoragent@cursor.com>