Skip to content

0.23.2¤

ENHANCEMENTS¤

  1. Enhanced NetBox sync_vrrp handling of incomplete live records. Groups with a missing or empty virtual address are now reported explicitly and skipped, while a missing or empty priority uses the VRRP default of 100.
  2. Enhanced NetBox sync_vlans and sync_device_interfaces with shared batch VLAN resolution by VID, VLAN-group VID ranges, configured VLAN group, and direct device-compatible NetBox scope. Native NetBox group ranges are checked as intervals without expansion, compatible VLAN groups take precedence over direct-site VLANs, global VLANs act as a final fallback, ambiguous matches are errors, and explicit incompatible group mappings are reported and skipped without fallback.

0.23.1¤

BUGS¤

  1. Fixed NetBox sync_vrrp querying all IP addresses when live parsing returned no usable VRRP assignments. The task now fails before NetBox reconciliation or IP searching when the normalized live assignment count is zero.
  2. Fixed NetBox sync_vrrp diff-key collisions by including protocol in the per-device assignment key (interface:protocol:group_id). VRRPv2 IPv4 and VRRPv3 IPv6 assignments can now use the same interface and group ID without overwriting each other during normalization or comparison.

ENHANCEMENTS¤

  1. Added require_vlan_group to NetBox sync_vlans and sync_device_interfaces. When enabled, VLANs that match neither vlan_map nor the scalar vlan_group are reported and skipped instead of falling back to the device site.

0.23.0¤

FEATURES¤

  1. Added strict, versioned Pydantic monitoring schemas for common process and messaging statistics and for broker, client, worker, job, database, and broker-side worker-connection data. The models provide a documented contract that can also be published as JSON Schema.
  2. Added thread-safe, process-lifetime monitoring of CPU, resident memory, uptime, messages sent and received, message failures, received events, and reconnects. Statistics remain in memory and reset when the owning process restarts.
  3. Added extensible worker monitoring models, with NornirWorkerMonitoringStats as the first service-specific schema. It exposes typed Nornir host counts, failed-host recovery, connection cleanup, and inventory-source status metrics as top-level fields.
  4. Added get_status() interfaces for the broker and clients and a get_worker_status task for workers to report component identity, endpoints, runtime directories, and CurveZMQ authentication configuration separately from performance statistics.
  5. Added the NetBox sync_vrrp task and netbox sync vrrp NFCLI command to reconcile TTP-parsed VRRPv2 and VRRPv3 groups, interface assignments, priorities, authentication, names, and virtual IP addresses. Existing unassigned IPs are reused, missing IPs are created with the vrrp role, and IPs assigned to other objects are reported without reassignment.

ENHANCEMENTS¤

  1. Added first-class get_stats() interfaces to clients, workers, and the broker. Their role-specific responses now consolidate connection, keepalive, queue, running-job, concurrency, client job, and SQLite database statistics where applicable.
  2. Updated NFWeb monitoring to consume and validate the unified statistics format directly, eliminating legacy numeric-string parsing while retaining its existing in-memory history and dashboard response contract.
  3. Updated NFCLI and the Textual monitoring client to display statistics through the unified interfaces, including the existing client job and database statistics commands.
  4. Split NFCLI broker, client, and worker inspection into explicit status and statistics commands. Status output restores environment and authentication information, while statistics output remains suitable for performance monitoring.

CHANGES¤

  1. Moved WorkerWatchDog from norfab.core.worker to norfab.core.monitoring. The watchdog now performs health checks and supplies worker-specific metric values, while NFPWorker builds and validates the complete monitoring response.
  2. Removed the broker show_broker management operation, worker get_watchdog_stats task, and old standalone client statistics attributes. This release does not provide backward compatibility for those interfaces.
  3. Changed NFPClient.get_stats() to return a JSON-ready dictionary after internal Pydantic validation.
  4. Removed the untyped worker details mapping from monitoring responses.

0.22.7¤

ENHANCEMENTS¤

  1. Enhanced NetBox sync_vlans and sync_device_interfaces to skip and report each VLAN mapped to a missing VLAN group while continuing to synchronize the remaining VLANs instead of aborting the task.
  2. Increased default worker and client jobs queue size to 10000 from 1000 items.

0.22.6¤

ENHANCEMENTS¤

  1. Normalized NetBox sync_device_ip and sync_device_prefixes diff output to always include create, update, delete, and in_sync actions, including empty plans and fully synchronized objects.
  2. Refactored NFWeb topology to seed selected devices from cached Nornir inventory, merge scoped NetBox and live discovery data with origin tracking, and add Topology, Protocols, and Stats filters.

0.22.5¤

ENHANCEMENTS¤

  1. Added tri-state preserve_description handling to NetBox sync_vlans, sync_vrfs, sync_device_interfaces, and sync_bgp_peerings. The default preserves an existing NetBox description only when live text is empty; True always preserves it, while False always applies live text, including an empty string. NetBox sync_bgp_asn now uses the same shared description policy while retaining its existing True default.
  2. Enhanced NetBox sync_bgp_community to skip live community values that do not contain :, preventing well-known names such as Junos no-export from being synchronized as NetBox BGP community objects.
  3. Enhanced NetBox sync_vrfs to handle multiple existing NetBox VRFs with the same name deterministically by logging a warning and reconciling against the matched VRF with the numerically lowest ID.
  4. Enhanced NetBox sync_vrfs to silently skip live parser records whose instance_type is present and not equal to vrf.
  5. Extended NetBox get_bgp_peerings to support the branch argument when reading BGP sessions from a NetBox branch.
  6. Extended NetBox get_devices, get_connections, get_topology, get_nornir_inventory, and get_containerlab_inventory with branch-aware reads. Nested inventory lookups propagate the branch to all supported data retrieval tasks.
  7. Added branch support to NetBox netbox_graphql and rest; both validate or create the branch through the existing pynetbox branch lifecycle and send its schema ID in the X-NetBox-Branch header. The deprecated graphql task remains unchanged.
  8. Branch-aware NetBox device, interface, circuit, BGP peering, Nornir inventory, and Containerlab inventory reads now bypass cache without changing existing cache keys or non-branch cache behavior.
  9. Refactored NetBox get_circuits to use the paginated netbox_graphql task with explicit circuit and cache-freshness queries, replacing its dependency on the deprecated graphql task.
  10. Added branch support to NetBox get_circuits, including device and circuit queries, REST termination path tracing, optional interface enrichment, and circuit lookups made by Nornir and Containerlab inventory tasks.

BUGS¤

  1. Fixed NetBox sync_device_interfaces duplex comparison by normalizing NetBox choice dictionaries to scalar values before diffing against live interface data.
  2. Fixed NetBox sync_device_ip matching to prioritize an IP already assigned to the target interface before applying VRF and duplicate-address fallback rules.
  3. Fixed NetBox BGP peering reads to pass the selected branch through get_bgp_peerings, get_devices, and pynetbox calls during sync_bgp_peerings.

0.22.4¤

ENHANCEMENTS¤

  1. Enhanced NetBox sync_bgp_community handling for standard BGP plugin communities that share the same value. The task now keeps live community names in the sync identity and matches existing NetBox communities by value plus community-name custom-field containment, then value plus description, before falling back to value-only matching.
  2. Added preserve_description to NetBox sync_bgp_asn, defaulting to True, so existing NetBox ASN descriptions stay unchanged unless explicitly overridden.
  3. Enhanced NetBox sync_bgp_asn device custom-field associations to use only parser records where local_asn is True, preventing peer ASNs from being associated with the observing device.

BUGS¤

  1. Fixed NetBox sync_device_interfaces VLAN mapping for VLAN names returned by Nornir getters. Matching named VLANs now resolve against their mapped VLAN group rather than falling back to the device site, and newly created group-scoped VLANs no longer receive a site association.

0.22.3¤

FEATURES¤

  1. Added the NetBox sync_bgp_asn task and netbox sync bgp-asn NFCLI command to reconcile globally unique live ASNs, descriptions, and optional device associations with NetBox IPAM. Existing ASNs can be updated without an RIR; creating missing ASNs requires an existing NetBox RIR supplied through rir.

ENHANCEMENTS¤

  1. Enhanced the NetBox sync_bgp_community task with optional device-to-community associations. The configured device_custom_field, which defaults to devices, records the NetBox devices on which each route target or BGP plugin community was observed while preserving existing associations.
  2. Added ignore_asn_by_range filtering to the NetBox sync_bgp_asn task so individual ASNs and numerical ranges, such as 65000 and 65100-65200, can be excluded from synchronization.
  3. Enhanced sync_device_interfaces to resolve VLAN names returned by Nornir interface getters against existing site- or group-scoped NetBox VLANs before diffing, while retaining numeric VID lookup and creation behavior. Added Juniper vMX-style FakeNOS coverage for access and trunk interfaces containing named VLAN members.
  4. Added raise_on_empty to NetBox get_interfaces, defaulting to the existing error behavior, and disabled it internally for sync_device_interfaces so devices with no existing NetBox interfaces can be initialized from live data.

BUG FIXES¤

  1. Fixed sync_device_interfaces raising a KeyError while initializing a device that has no existing NetBox interfaces.

CHANGES¤

  1. Removed the NetBox crud_update task's ineffective partial argument. Updates consistently use PATCH semantics through pynetbox, including standard device attributes and custom field data.
  2. Renamed the NetBox vlan_map rule fields vlan_ids, device_names, interface_names, and vlan_group to match_vlan_ids, match_device_names, match_interface_names, and set_vlan_group, respectively.

0.22.2¤

ENHANCEMENTS¤

  1. Added first-class git://<remote-name>/<path> file retrieval for clients and workers. The File Sharing resolve_git_url task synchronizes the configured Git remote on demand and returns its published nf:// URL, keeping all Git access inside the File Sharing service. Git fetches disable terminal, browser, GUI, and credential-helper authentication fallbacks so rejected credentials fail without interactive prompts.
  2. Enhanced the NetBox sync_device_inventory, sync_vlans, sync_device_prefixes, sync_vrfs, sync_device_interfaces, sync_mac_addresses, sync_device_ip, sync_bgp_peerings, and sync_bgp_community tasks to surface per-device Nornir resources_failed entries in task errors, error events, and logs while retaining usable results from successful devices without failing the overall NetBox task.
  3. Enhanced sync_bgp_community community-name custom-field handling to normalize comma-separated strings, trim empty or padded entries, preserve existing names, append only missing live names, and store the resulting names in stable sorted order for idempotent synchronization.
  4. Enhanced sync_device_interfaces MTU and speed handling to preserve existing NetBox values when both live configuration and operational status return missing or zero values, preventing incomplete parsing data from producing unwanted updates.
  5. Enhanced the NFWeb monitoring dashboard with stacked fabric-wide broker and worker CPU and memory history, current fabric totals, synchronized time zoom, synchronized top-ten worker comparison scrolling, and selected-worker job status and task summaries.
  6. Improved NFWeb monitoring refresh behavior by reading the latest shared sample at the selected interval, coalescing manual refreshes with active collection, and merging and deduplicating HTTP and WebSocket samples without allowing older responses to replace newer data.
  7. Improved NFWeb partial-sample diagnostics by validating broker and worker monitoring responses, identifying workers with missing resource data, and presenting collection warnings in the compact Fabric observability toolbar.

0.22.1¤

FEATURES¤

  1. Added the NetBox sync_bgp_community task and netbox sync bgp-communities NFCLI command. The task uses the TTP Templates BGP communities getter, stores route targets in IPAM and other community types in the NetBox BGP plugin, and appends missing live community-set names by value into an optional custom field.

ENHANCEMENTS¤

  1. Adding gitpython to filesharing service version output
  2. Enhancing NFWeb NorFab monitoring dasboard

0.22.0¤

FEATURES¤

  1. Added File Sharing Git remote synchronization. Configure public or authenticated GitHub repositories in worker inventory, then clone a selected branch and make its files available to NorFab workers under an nf:// mount automatically or on demand using the create_remote_git, git_clone, and delete_remote_git tasks and matching NFCLI commands.

ENHANCEMENTS¤

  1. Enabled safe NetBox interface type updates by default. Existing interfaces can transition from other to virtual, bridge, or lag, and between those logical types, while specific physical types and transitions to the other fallback remain protected. New interface creation continues to accept any parsed type.
  2. Added NetBox branching support to all CRUD tasks by forwarding the optional branch argument when creating the pynetbox client.
  3. Added nf:// YAML file support for NetBox interface_map and vlan_map synchronization inputs, including use inside the sync_all per-task configuration. Downloaded mappings use the same Pydantic validation as inline rules.
  4. Expanded NetBox sync_all to run inventory, VLAN, prefix, VRF, interface, MAC address, IP address, and BGP peering synchronization in dependency order. Task-specific options now use the inline or nf:// YAML sync_kwargs mapping, and setting any task key to false skips that stage while later stages continue.
  5. Consolidated the Docker development Compose environment into one all-in-one container that installs the full dependency set and mounts the local NorFab package over the installed source.
  6. Exposed NFWeb on all IPv4 interfaces by default, advertised its preferred LAN address, and allowed HTTP and WebSocket access from any browser origin.

BUGS¤

  1. Reduced idle CPU usage in broker, client, and worker ZeroMQ owner loops by restoring the poll timeout from 10 ms to 100 ms. Outbound messages can wait up to 100 ms for an idle owner loop, while active socket traffic still wakes the poller immediately.

0.21.2¤

BUGS¤

  1. Fixed a client job result collection race that could return None to callers, including FastAPI endpoints, after a worker had completed successfully. Final job snapshots now take precedence over mutable database state, terminal job statuses (COMPLETED, FAILED, and STALE) cannot transition to another status, and late polling responses are ignored for finished jobs.
  2. Fixed ZeroMQ socket lock starvation introduced by the 0.21.1 keepalive scheduling changes.

ENHANCEMENTS¤

  1. Refactored broker, client and worker socket I/O so each ZeroMQ socket is owned by one loop, with bounded client and worker outbound queues drained by zmq_send_recv.

0.21.1¤

FEATURES¤

  1. Added broker ip_allowlist inventory support using PyZMQ's native source-IP authentication filter. The allowlist accepts exact IP addresses only, applies when zmq_auth is enabled, and defaults to ["*"] to allow connections from any source.
  2. Added Nornir errdisabled-host handling:
  3. Failed hosts now remain excluded from later tasks and recover automatically after failed_hosts_recovery_timeout, which defaults to 60 seconds.
  4. Added reset_failed_hosts_before_task, default false. Setting it to true enables the earlier always-reset compatibility mode and disables persistent errdisabled-host behavior, making watchdog timeout recovery unnecessary.
  5. Added the on_failed task argument, default false, exposed as on-failed in NFCLI, to include errdisabled hosts in one specific run without clearing their failed state.
  6. Added errdisabled_hosts_list and errdisabled_hosts_clear service tasks, exposed through NFCLI as show nornir errdisabled-hosts and nornir clear errdisabled-hosts. List results include the host, errdisabled timestamp, remaining recovery time, and failure reason when available.
  7. Nornir task results now report hosts executed during the job in resources and hosts that failed during that job in resources_failed.

ENHANCEMENTS¤

  1. Improved long-running broker, client, and worker reliability by serializing ZeroMQ socket polling and receiving with concurrent keepalive, dispatcher, API, and job-thread sends, using short non-blocking poll cycles to avoid delaying outbound traffic.
  2. Made worker broker reconnection thread-safe by serializing socket shutdown, replacement, registration, and keepalive retargeting so background threads cannot use a socket while it is being replaced.
  3. Enhanced NetBox sync_device_interfaces to supplement interface configuration parsing with operational interface status, filling MTU, duplex, and speed only when configuration parsing returns no value.

0.21.0¤

FEATURES¤

  1. Added the independent NetBox sync_device_prefixes task and NFCLI netbox sync prefixes command to derive canonical prefixes from FakeNOS-backed live interface data, reconcile creates and site updates, optionally associate VRFs and sites, and support filters, dry-run, approval, and branching workflows.
  2. Added the NetBox sync_vlans task and NFCLI netbox sync vlans command to reconcile live VLAN names and descriptions with site- or VLAN-group-scoped NetBox VLANs. The task supports Nornir device selection, dry-run and approval workflows, branch-aware operations, scalar VLAN-group fallback, and VLAN ID filtering. VLAN deletion is intentionally excluded because live parsing cannot reliably identify stale NetBox VLANs.
  3. Added shared ordered vlan_map rules to NetBox VLAN and interface synchronization. Rules support VLAN ID ranges, device-name globs, VLAN-name globs for VLAN sync, and interface-name globs for interface sync; the first matching rule selects an existing VLAN group by exact name.
  4. Added the NetBox sync_vrfs task and NFCLI netbox sync vrfs command to collect global VRFs with the Nornir TTP vrfs getter and synchronize them by name.

ENHANCEMENTS¤

  1. Enhanced VLAN group mapping to use each NetBox VLAN group's configured vid_ranges, with explicit rule vlan_ids acting as a narrower boundary. Unmatched VLANs use the scalar vlan_group when supplied, otherwise they retain device-site fallback behavior.
  2. Added ordered interface_map rules to NetBox sync_device_interfaces to rename live interfaces by device-name glob, device-type model glob, and literal match/replace values before filtering and comparison.
  3. Added Invoke developer tasks for documentation, checks, linting, and Docker-based tests, including opt-in per-file parallel containers with isolated runtimes, and added Vulture dead-code detection to the project checks.

CHANGES¤

  1. Refactored NetBox sync_device_ip to synchronize IP addresses only. Prefix collection, matching, and writes now belong exclusively to sync_device_prefixes; sync_all no longer creates prefixes implicitly.
  2. Changed NetBox sync_device_prefixes ignore_ranges filtering to compare canonical live prefixes and exclude only prefixes fully contained within an ignored network.

BUGS¤

  1. Fixed NetBox sync_device_ip duplicate detection to compare canonical host addresses without prefix lengths, preventing identical non-anycast IPs with different masks from being created in the same synchronization payload.
  2. Fixed NetBox sync_bgp_peerings to validate parsed source IP addresses and skip peerings with invalid values, such as undefined when a BGP session is down.
  3. Added textual into full extras for norfab installtion.
  4. Fixed NFAPI startup consuming excessive CPU by yielding while waiting for worker initialization events instead of busy-waiting.

0.20.6¤

FEATURES¤

  1. Added a Nornir create_host_from_netbox replace option to delete all current runtime hosts with InventoryFun before loading the requested NetBox hosts.
  2. Enhanced NetBox sync_device_interfaces with ignore_vlans and ignore_vrf options, plus ordered interface-name and VLAN-ID-range mappings for dynamic vlan_group selection.

ENHANCEMENTS¤

  1. Improved Jinja2 template rendering for Nornir cli, cfg, and test tasks by reusing fetched and compiled nf:// templates across per-host rendering loops while preserving dynamic per-host template URLs and include support.
  2. Added NFCLI Nornir test markdown presence flag to emit rich markdown test reports.

BUGS¤

  1. Fixed NetBox branch-aware tasks to reject merged branches before using them.

0.20.5¤

FEATURES¤

  1. Added NetBox sync_device_ip ignore_vrf option to control VRF-aware matching and creation for IP addresses and prefixes.
  2. Added FakeNOS worker inventory networks.<name>.auto_start support to start selected virtual networks automatically when the worker initialises.

CHANGES¤

  1. Added FakeNOS-backed cEOS coverage for Nornir CLI and NetBox sync_device_interfaces tests.
  2. Changed NetBox sync task FastAPI endpoints to use POST.
  3. Added NetBox branch provisioning progress events when branch-aware tasks wait for a branch to become ready.

0.20.4¤

FEATURES¤

  1. Added NFAPI .env detection and loading with python-dotenv before inventory initialization, making local variables available to NFCLI and inventory Jinja2 templates. Local .env values override existing process variables by default; load_env_override=False preserves existing values. NFAPI also exposes list_environment_variables() for inspecting its environment.
  2. Added FastMCP task result guardrails with ordered aggregate byte limits, recursive regex replacement, selective regex blocking, wildcard inventory selectors, and raw-result preservation in the FastMCP client database.
  3. Added the Nornir netbox.filter Jinja2 helper to retrieve filtered NetBox core and plugin objects for dynamic configuration and test-suite rendering.
  4. Added Nornir create_host_from_netbox runtime inventory task and NFCLI nornir inventory create-host-from-netbox command to create or replace in-memory Nornir hosts from explicit NetBox device names.

ENHANCEMENTS¤

  1. Added show fastmcp guardrails NFCLI command to fetch FastMCP tools data and display configured tool guardrails and result guardrails in separate sections.
  2. Enhanced Nornir cli MCP task results with built-in redaction guardrails for documented network-device, Linux, HTTP header, URL credential, OAuth token parameter, netrc, and PEM private-key secrets, replacing matched values with REDACTED while preserving raw job results in the FastMCP client database.
  3. Enhanced NFCLI input request prompts to show the approval timeout and automatically send False/No when the prompt expires.
  4. Enhanced NFCLI approval previews to use nested output by default.
  5. NorFab netbox service and Netbox v4.6 compatibility verified and tested
  6. NorFab netbox service and Netbox BGP plugin v0.19.0 compatibility verified and tested
  7. NorFab netbox service and Netbox Branching plugin v1.1.1 compatibility verified and tested
  8. Enhanced Netbox check_device_sync with an optional inventory check that runs sync_device_inventory in dry-run mode and includes inventory state in the per-device summary and detailed diff.
  9. Enhanced NetBox sync_device_inventory with inventory-parse-template for parsing live inventory with a custom TTP template.

CHANGES¤

  1. Renamed NetBox sync interactive confirmation argument from with_review/with-review to with_approval/with-approval.
  2. Reworked NorFab logging isolation so NFAPI no longer configures application logging by default, NorFab-owned broker and worker processes configure logging from their own inventories, and default file logs are written as per-process JSONL files under __norfab__/logs. NFCLI and TUI opt in to NFAPI process logging with distinct names, and show norfab logging now retrieves broker and worker logs through normal NorFab client calls with human-readable output by default and raw records with details.
  3. Dependencies updates:

  4. ntc-templates 9.1.0 -> 9.2.0

  5. textual 8.2.7 -> 8.2.8
  6. mcp 1.27.2 -> 1.28.1
  7. langchain 1.3.4 -> 1.3.14
  8. Added langchain-core 1.5.1 optional dependency
  9. langchain-openai >=0.2 -> 1.4.1
  10. langchain-anthropic >=0.2 -> 1.5.2
  11. langchain-mcp-adapters >=0.1 -> 0.3.0
  12. langgraph >=0.2 -> 1.2.9
  13. Added fastembed 0.8.0 optional dependency
  14. Added qdrant-client 1.18.0 optional dependency
  15. datamodel-code-generator 0.61.0 -> 0.71.0
  16. pynetbox 7.7.0 -> 7.8.0
  17. fastapi 0.136.3 -> 0.140.0
  18. uvicorn 0.49.0 -> 0.51.0

  19. Changing Nornir parse ttp logic to not mark results as failed if any of cli commands collection failed for any of the hosts

BUGS¤

  1. Fixed NetBox CRUD tasks to support third-party plugin endpoints

0.20.3¤

BUGS¤

  1. Fixing nornir tests nfcli shell to pass verbose_on_fail to results processing, to make sure return results as table even when have failed tests.

FEATURES¤

  1. Added FastMCP tool call guardrails to reject unsafe MCP tool calls before NorFab job dispatch. Guardrails can be defined by tasks or FastMCP inventory, support regex, contains, and equals checks, can disable built-in task guardrails with tools.disable_builtin_guardrails, and are visible through show fastmcp tools.

ENHANCEMENTS¤

  1. Extended Nornir worker statistics with SID, NetBox, Containerlab inventory load statuses and managed nornir_hosts count.
  2. Enhanced NetBox worker REST filtering to route task-side pynetbox.filter() calls through adaptive bulk_filter, automatically chunking long list filters to avoid URI length errors while preserving query options such as fields, limit, and ordering.
  3. Improved result status coloring for nornir test task
  4. Nornir show hosts table added index column
  5. Enhanced Nornir cli task MCP metadata with default guardrails that block reboot, reload, restart, configuration-mode, shell-mode, OS/image/package operations, outbound ssh/telnet, commit, delete, clear, debug, reset, zeroize, and related state-changing commands when called through FastMCP.
  6. Enhanced Nornir cfg task MCP metadata with default guardrails that block reboot, reload, restart, do ... and run ... operational escapes, delete, erase, zeroize, and outbound ssh/telnet commands when called through FastMCP.

CHANGES¤

  1. Moved NorFab platform nfcli show commands under show norfab, including show norfab client jobs, show norfab broker workers, and show norfab workers statistics.
  2. Moved worker job history commands from show nornir jobs to show norfab workers jobs.
  3. Moved NFCLI inventory configuration shell from configure to norfab configure.
  4. Added a service filter to show norfab workers jobs summary and show norfab workers jobs details.
  5. Moved worker utility commands from workers to norfab workers.
  6. Moved the NFCLI client version report from show norfab version to show norfab client version.

0.20.2¤

ENHANCEMENTS¤

  1. Updated NFCLI shells to accept single values for task arguments backed by worker list inputs, normalizing them before dispatch for NetBox and Nornir commands.
  2. Enhanced Netbox update_interfaces_description task to render description templates for virtual, LAG, and disconnected interfaces that have no connection data, with clearer dry-run wording and expanded test coverage for static, dry-run, connected, and unconnected interface updates.
  3. Enhanced Netbox get_connections task with an interfaces argument to filter by exact interface or port names using optional GraphQL variables; update_interfaces_description now passes selected interfaces through when rendering connection-aware descriptions, and create_ip now uses exact interface matching for peer lookups.
  4. Updating Tasks' documentation to follow consistent template
  5. Refactoring tests files structure to follow services layout

BUGS¤

  1. NFAPI fixing depends_on feature check when dependency worker is yet to start

0.20.1¤

ENHANCEMENTS¤

  1. Improved NFCLI ERROR status highlighting to make it red color
  2. Added interactive review to Netbox sync tasks; with_approval=True runs a dry-run preview before prompting and only applies changes after review.
  3. Enhancing nfcli terminal event output, added header, footer job info, shortened timestamps, removed uuid from every event, its only in header, additional summary info displayed in footer now.
  4. Improving file tab completion choice handling by returning top folders only not all files in the tree
  5. Added device manufacturer, platform and type to Netbox inventory transform function
  6. Updated Nornir NFCLI table rendering to use PICLE table outputter and removed nornir-salt from nfcli installation extras.
  7. Added name argument to NFAPI make_client() and deterministic default client names using the entry script and current folder hash to reduce client identity and local job database collisions.
  8. Added support to pass on job object to RetryRunner for connection events logging

BUGS¤

  1. Fixed Netbox worker API calls to use retry-enabled sessions for status, REST, GraphQL, and pynetbox requests to reduce intermittent failures from transient Netbox gateway errors.
  2. Inventory loading fixed to correctly calculate base_dir when inventory_data used
  3. Fixed Netbox get_devices filtering with large single-key list filters to avoid URI length errors.
  4. Fixing Nornir parse TTP to not exit the job if have some hosts failed.
  5. Fixing Netbox inventory sync to not exit on devices that failed collecting live data, skip and continue processing the rest instead.

CHANGES¤

  1. Changed nornir parse ttp default mode to non-strict
  2. Changed netbox sync tasks default timeout to 600

0.20.0¤

FEATURES¤

  1. Added Netbox sync_device_inventory task to synchronize device chassis serial numbers and installed modules from live Nornir inventory. The task supports module type and module bay creation, pattern-based inventory mappings, custom Python transformers, filtering, deletion controls, and dry-run previews.
  2. Added support for prompts to mcp service, added two prompts to Nornir cli task.
  3. Nornir worker adding SNMP tasks to support get, walk, set operation using SNMP v1/2/3

CHANGES¤

  1. Removed the Netbox sync_device_facts task. Device serial number synchronization is now handled by sync_device_inventory using the live inventory record whose slot is chassis.
  2. Extended Netbox sync_all to run device inventory synchronization before interfaces, MAC addresses, IP addresses, and BGP peerings. Added inventory_* mapping, transformer, filtering, and module creation arguments; process_deletions and message are shared across the applicable synchronization stages.
  3. Updating docker deployment files

BUGS¤

  1. Adding deepdiff package to full installation extras, Netbox worker would fail to start if not installed.
  2. Changing mcp package python dependencies to remove python version specification of <3.14 as it failed to get installed for Py3.14
  3. Fixing Netbox Inventory URL handling when it ends with forward slash
  4. Fixing full extras to enlist all dependencies

0.19.0¤

FEATURES¤

  1. Added device check-sync task to Netbox service to check if device interfaces, ips, bgp, mac are in sync with Netbox
  2. Added device sync-all task to sync all data from live device into Netbox
  3. Adding powershell installation script and updating install instructions - this script install Norfab going through interactive installation process.
  4. Adding run_shell_cmd task to workers to run arbitrary shell command on the host, adding picle shell workers run-shell-command .. command too
  5. Adding ignore_peer_ranges argument to sync bgp peerings task
  6. Adding bearer token authentication support for fastmcp service, together with related task and nfcli shell commands
  7. Adding NFPClient.submit_job() API returning a blocking job future object with events(), result() and send_response() methods for event-aware and interactive client workflows

ENHANCEMENTS¤

  1. Improving netbox Sync BGP peerings task to make better use of lookup cache for asn, vrf, rir, ip objects resolutions
  2. MCP service policy now enforced for tool calls not only for discovery
  3. Netbox sync device interfaces improved VLAN handling - now it creates vlan if its missing, added vlan_group argument to specify group to associate with vlan, otherwise it is associated with device site. Vlan retrieval for existing vlan helper is either via group, device site or global.
  4. Netbox service sync IP task updated to honor anycast role for existing Netbox IPs and re-use role anycast for discovered IPs
  5. Refactoring bgp peerings sync to support name template being a jinja2 template string as well as adding extra variables to renderer context
  6. Enhancing bgp syn task to use 5 tuple to represent bgp session identity instead of name, allowing to detect session name changes.

BUGS¤

  1. Fixing ip sync task bulk update list construction, making sure IDs are always present for items
  2. Fixing IP sync prefixes filtering using bulk_filter
  3. Fixing IP creation logic to check existing ip first, and if not found proceed with find a suitable prefix
  4. Fixing resolve_ip helper function to pickup longest prefix length prefix to create IP in
  5. Fixing resolve_vrf function to detect when multiple VRF with same name present in netbox and to emit warning message to the user

CHANGES¤

  1. Adding Pydantic task input and output models for all services, refactoring NFCLI shells to use these models.
  2. Moving pydantic models to dedicated per-worker files.
  3. Refactoring core client and worker job handling to use future-based job tracking, normalized job events and client input request/response flow; run_job() remains available for synchronous job execution
  4. Dependencies updates:

  5. tornado 6.5.5 -> 6.5.7

  6. pydantic 2.12.5 -> 2.13.4
  7. orjson 3.11.7 -> 3.11.9
  8. picle 0.12.0 -> 0.12.2
  9. rich 14.3.3 -> 15.0.0
  10. pyreadline3 3.5.4 -> 3.5.6
  11. netmiko 4.6.0 -> 4.7.0
  12. nornir-scrapli 2025.01.30 -> 2025.1.30
  13. ntc-templates 9.0.0 -> 9.1.0
  14. requests 2.32.5 -> 2.34.2
  15. scrapli-community 2025.01.30 -> 2025.1.30
  16. lxml 6.0.2 -> 6.1.1
  17. textual 8.1.1 -> 8.2.7
  18. mcp 1.27.1 -> 1.27.2
  19. langchain 1.2.12 -> 1.3.4
  20. langchain-community 0.4.1 -> 0.4.2
  21. langchain-ollama 1.0.1 -> 1.1.0
  22. ollama 0.6.1 -> 0.6.2
  23. datamodel-code-generator 0.55.0 -> 0.61.0
  24. langgraph-checkpoint-sqlite 3.0.3 -> 3.1.0
  25. pynetbox 7.6.1 -> 7.7.0
  26. deepdiff 9.0.0 -> 9.1.0
  27. fastapi 0.135.1 -> 0.136.3
  28. uvicorn 0.42.0 -> 0.49.0
  29. python-multipart 0.0.22 -> 0.0.32

0.18.1¤

CHANGES¤

  1. Added CreateIpInput Pydantic model for Netbox create_ip task input validation and used it as input argument for @Task decorator
  2. Added CreateIpBulkInput Pydantic model for Netbox create_ip_bulk task input validation and used it as input argument for @Task decorator
  3. Replaced **kwargs in Netbox create_ip_bulk task with explicit typed arguments matching create_ip signature
  4. Enhanced IP allocation logic for allocating next available prefix when child prefix already contains IPs in Netbox
  5. Enhanced create ip logic for detecting IP address assigned object
  6. Changing norfab to produce json schema for tasks by model fields names instead of aliases by_alias=False.
  7. Updating nornir parse napalm to use nornir task task
  8. Fix create prefix task to make sure to check if /31 subnet can be allocated even if available prefixes return /30
  9. Create ip task enhanced to handle case when multiple parent prefixes matched in Netbox by prefix filter
  10. Fix create ip when create peer ip is true, check if mask len 32 or 128 raise error in that case - can not create peer ip for /32 or /128 prefixes
  11. Adding is_timed_out method to worker Job object to alow monitor job time out from inside tasks

FEATURES¤

  1. Adding brief mode to get interfaces to return only essential interfaces data

0.18.0¤

BUGS¤

  1. Fixing Netbox prefix allocation with parent filtering by dictionary
  2. Fixing netbox crud tasks to use Pydantic model for input validation
  3. Enhancing netbox worker filtering for large number of items to avoid 414 error

CHANGES¤

  1. Complete refactoring of Netbox sync_device_interfaces task
  2. Complete refactoring of Netbox sync_device_ip task
  3. Dependency updates:

  4. mcp 1.26.0 -> 1.27.1

FEATURES¤

  1. Created Netbox task sync_mac_addresses
  2. Enhancing streamlit web ui network map application to support 2d and 3d view of the topology - support Netbox data, LLD and BGP data overlay on single graph
  3. Adding Netbox get_topology task to fetch devices and links in topology format

0.17.3¤

ENHANCEMENTS¤

  1. Improving logic for local ip sourcing for BGP sessions

BUGS¤

  1. Fixing BGP sessions name forming for Netbox sync bgp tasks
  2. Fixing deepdiff dependency for Netbox service

0.17.2¤

FEATURES¤

  1. Adding new Netbox sync_bgp_peerings task to synchronize BGP sessions between live devices and NetBox
  2. Adding new Netbox create_bgp_peerings task to create BGP peerings
  3. Adding new Netbox update_bgp_peerings task to update BGP peerings
  4. Nornir Test markdown results adding results summary table when extensive is True
  5. Fixing logic of detecting assigned interface for create IP task

0.17.1¤

CHANGES¤

  1. Refactored Netbox get_connections task, remove include_virtual arguments, cables argument, now these data always retrieved.
  2. Refactoring Netbox graphql fetch function to use variables, pagination, persistent sessions and threading to enhance data retrieval performance

FEATURES¤

  1. Netbox get connections added remote interface label extraction for physical interfaces, console port, power ports, front/rear ports
  2. Netbox get connections added remote interface MAC addresses extraction
  3. Nornir tests markdown report added timestamps and duration summary

BUGS¤

  1. Fixing get connections handling for provider network
  2. Fixing client and worker job db timestamps handling for created_at

0.17.0¤

CHANGES¤

  1. Updating Netbox get_devices task to use pynetbox for fetching brief device info, fixing bug with pagination
  2. Enhancing Netbox get_devices to cache sites data to reduce amount of API calls
  3. Updating Netbox get_interfaces to use pynetbox for fetching brief interfaces info, fixing bug with pagination
  4. Refactoring Containerlab worker moving it to dedicated directory.
  5. Refactoring FastAPI worker moving it to dedicated directory.
  6. Refactoring Workflow worker moving it to dedicated directory.
  7. Refactoring FastMCP worker moving it to dedicated directory.

FEATURES¤

  1. Adding agentic AI capabilities to the NorFab client via NFPClient.get_agent() method:

  2. New norfab/core/agent.py module with NFPAgent class — single-file, zero overhead when unused

  3. LangGraph ReAct agent with auto-discovered NorFab service tools
  4. Multi-provider LLM support: openai, anthropic, ollama, groq, mistral, openrouter, google, bedrock
  5. Optional MCP server integration via langchain-mcp-adapters (stdio, sse, streamable-http)
  6. Optional RAG knowledge base via Chroma or FAISS
  7. Optional multi-turn conversation memory (in-process buffer or SQLite)
  8. Configuration via client -> agent_profiles section in inventory.yaml
  9. New norfab[clientagent] optional dependency group

  10. Adding new Netbox CRUD tasks for generic REST API access to any NetBox object type:

  11. crud_list_objects — lists all available NetBox object types from the OpenAPI schema, results cached for 24 hours

  12. crud_search — free-text search across multiple object types simultaneously using the q parameter
  13. crud_read — retrieve objects by ID(s) or filter dict(s), supports pagination and field selection
  14. crud_create — create one or multiple objects in a single request, supports dry_run preview
  15. crud_update — partial (PATCH) or full (PUT) update of one or multiple objects by ID, supports dry_run diff
  16. crud_delete — delete one or multiple objects by ID, supports dry_run preview
  17. crud_get_changelogs — retrieve object change history, supports NetBox 4.0+ with automatic fallback to older versions

  18. FastMCP service - adding MCP tool exposure policy via inventory tools.policy:

  19. tools.policy is an ordered list of policy entries with service, tasks, and action keys

  20. service accepts glob patterns matched against NorFab service names
  21. tasks accepts glob patterns matched against service task names
  22. action supports allow or reject
  23. Policies are evaluated top-down, first matching entry wins
  24. If no policy entry matches, tool is allowed by default

BUGS¤

  1. Nornir parse ttp enhancing return result to be for parsed template only to avoid extra data from other templates
  2. Netbox get_connection fixing handling of remote interface when it has no lag associated with it
  3. Fixing nfcli nowait argument handling

0.16.6¤

BUGS¤

  1. Fixing Nornir parse_ttp task hosts filtering

0.16.5¤

BUGS¤

  1. Fixing Nornir N2G diagram calling UUID handling

CHANGES¤

  1. Splitting Nornir parse task into 3 tasks parse_ttp, parse_napalm, parse_textfsm
  2. Enhancing nfcli shell nornir parse commands
  3. Watchdog thread now starts automatically for every worker, so far implemented RAM usage monitoring

FEATURES¤

  1. Nornir service nfcli added nornir parse textfsm command
  2. Nfcli - adding these commands:

  3. show workers statistics

  4. show workers brief

  5. Adding experimental Textual TUI monitoring dashboard


0.16.4¤

BREAKING CHANGES¤

Below changes are to simplify NorFab codebase and reduce maintenance burden.

  1. Netbox get_interfaces now return complete REST API interfaces data without trying to flatten or normalize it
  2. Netbox get_devices now return complete REST API devices data without trying to flatten or normalize it

0.16.3¤

BUGS¤

  1. Enhancing error handling for worker results compress to not fail silently if task returns data that is not JSON serializable
  2. Fixing get_interfaces and get_devies output models validation handling
  3. Fixing fakenos models to not interfer with nfcli imports - no fakenos required to be installed for nfcli to load, moved fakenos tasks models to dedicated file
  4. Enhancing nfcli output to skip workers that had no results returned in nested output

CHANGES¤

  1. Dependencies upgrades:

  2. tornado 6.5.4 → 6.5.5

  3. orjson 3.11.5 → 3.11.7
  4. rich 14.3.2 → 14.3.3
  5. tabulate 0.9.0 → 0.10.0
  6. ntc-templates 8.1.0 → 9.0.0
  7. scrapli 2025.01.30 → 2026.2.20
  8. xmltodict 1.0.2 → 1.0.4
  9. robotframework 7.4.1 → 7.4.2
  10. langchain 1.2.10 → 1.2.12
  11. datamodel-code-generator 0.54.0 → 0.55.0
  12. fastapi 0.129.0 → 0.135.1
  13. uvicorn 0.40.0 → 0.42.0
  14. fakenos 1.0.0 → 1.0.1

0.16.2¤

BUGS¤

  1. Fixing markdown tests report to calculate success rate correctly
  2. Fixing Nornir cli input model to allow either commands or run_ttp to be provided

CHANGES¤

  1. Dependencies upgrades:

  2. picle 0.11.0 -> 0.11.1

  3. Netbox get_devices task refactored to use Pynetbox and REST API, as a result Netbox inventory filters for devices now can use Pynetbox device style filtering instead of GraphQL filters.

  4. Enhanced logging for Netbox worker and tasks

FEATURES¤

  1. Adding new FakeNOS service to simulate networks interactions for automation testing
  2. Netbox get_interfaces task added caching

0.16.1¤

BUGS¤

  1. Fixing Netbox dependency for data-model-generator library
  2. Fixing Netbox get_interface queries performance

0.16.0¤

FEATURES¤

  1. Nornir Tests task - adding support for groups argument, added support to nfcli shell as well
  2. Adding configuration model to edit NorFab configuration using NFCLI shell
  3. NFCLI - adding history and commands history persistency across runs
  4. Nornir netbox get inventory task added support to pass on cache variable to control overall cache behaviour
  5. Netbox get_interfaces task uses REST API now and return interfaces extra information, such as connected endpoints
  6. NFCLI - adding new show jobs statistics and show jobs database-statistics commands to view local jobs database statistics

CHANGES¤

  1. Dependencies updates:

    • picle: 0.9.0 → 0.11.0 - enhanced command help and man tree output, commands history
  2. Netbox worker refactoring:

  3. moving tasks out to dedicated files to shrink main worker .py file

  4. moved Netbox worker related models under worker folder itself
  5. get_circuit changing cache argument to None to honor global cache setting
  6. get_interfaces task refactored to use REST API instead of GraphQL API

  7. Netbox get_interfaces - refactored to use rest api via pynetbox instead of GraphQL API

  8. Enhancing nornir tests markdown results report - adding groups, description, comments to test details, added total failed an success rate counters, modified table output to display failed tests first.
  9. Enhancing workers and client jobs database operations toward reducing memory usage and improving speed - switching to orjson instead of json, dropping text columns in favour of byte blobs and switching zlib compression to level 1
  10. Adding orjson lib to core dependencies
  11. Refactored Nornir worker:

  12. splitting tasks into dedicated files and moving all in dedicated folder

  13. moving related pydantic models under new nornir_worker folder

  14. Refactoring broker to use orjson instead of json library

BUGS¤

  1. NFCLI netbox get functions - adding missing pipe models
  2. Client - fixing race condition when calling destroy and dispatcher threads still using zmq socket
  3. NFCLI fixing Nornir cli and cfg tasks multiline collection of commands
  4. Nornir worker - fixing not to raise error when not able to load Nebtox inventory.

0.15.4¤

BUGS¤

  1. Fixing FastMCP service tool calling results validation and adding additional tool calling tests

FEATURES¤

  1. Agent service - adding support to build agents using YAML definition
  2. Agent service - adding support for grok LLM provider

CHANGES¤

  1. Dependencies updates:

    • pyyaml: 6.0.2 → 6.0.3
    • pyzmq: 27.0.2 → 27.1.0
    • psutil: 7.0.0 → 7.2.2
    • tornado: 6.5.2 → 6.5.4
    • pydantic: 2.11.7 → 2.12.5
    • rich: 14.1.0 → 14.3.2
    • pyreadline3: 3.4.1 → 3.5.4
    • cerberus: 1.3.5 → 1.3.8
    • jmespath: 1.0.1 → 1.1.0
    • ncclient: 0.6.15 → 0.7.0
    • ntc-templates: 8.0.0 → 8.1.0
    • scrapli-netconf: 2025.01.30 → 2026.1.12
    • xmltodict: 0.13.0 → 1.0.2
    • lxml: 4.9.4 → 6.0.2
    • textfsm: 1.1.3 → 2.1.0
    • dnspython: 2.4.2 → 2.8.0
    • robotframework: 7.3.2 → 7.4.1
    • langchain: 1.0.2 → 1.2.10
    • langchain-ollama: 1.0.0 → 1.0.1
    • ollama: 0.6.0 → 0.6.1
    • pynetbox: 7.5.0 → 7.6.1
    • fastapi: 0.116.1 → 0.129.0
    • uvicorn: 0.35.0 → 0.40.0
    • python-multipart: 0.0.20 → 0.0.22
    • mcp pinned to 1.26.0

DOCS¤

  1. Updating FastMCP service documentation

0.15.3¤

FEATURES¤

  1. Netbox service - get_interfaces task added interface_list argument to filter interfaces by a list of names
  2. Netbox service - get_circuits task added add_interface_details argument to add ip addresses, vrf and child interface info to the circuits when set to True
  3. Netbox service - create_ip_bulk task added interface_list argument to filter interfaces by a list of names
  4. Netbox worker - support added for 4.5 Netbox version

CHANGES¤

  1. Nornir - Removed complete output from tests markdown report

BUGS¤

  1. Netbox - get_connections fixing parent endpoint handling for virtual interfaces

0.15.2¤

BUGS¤

  1. NorFab nfcli - Fixing show jobs call

CHANGES¤

  1. NorfabNfcli - enhancing jobs commands on the client to query local database
  2. NorFab client - refactored mmi calls, removed get, post and recv_from_broker methods as not needed anymore
  3. FastAPI - removed job_post and job_get api as no longer needed, might need to refactor it in the future
  4. NorFab client - enhanced fetch_jobs db method to allow filter by service, workers, last N jobs etc.

FEATURES¤

  1. NorFab nfcli - added nowait argument to not wait for job results and return prompt straight away

0.15.1¤

BUGS¤

  1. Nornir service watchdog - fixing connection_idle_timeout handling
  2. Netbox service - fixing ssl_verify handling to suppress InsecureRequestWarning
  3. Norfab shell - fixed references to deprecated broker fss calls, replaced with calls to filesharing service

0.15.0¤

CHANGES¤

  1. Introduce sqlite3 DB into client for jobs state persistence
  2. Updated NFP semantics for better performance and readability
  3. Worker - added support for job.stream capability to stream a set of bytes back to client, used for file transfers, added new NFP.STREAM command as part of this effort
  4. Added support for new NFP.PUT command for client to update running jobs on worker, currently used by client to command worker a number of file offsets to stream back, but can be extended to provide user input mid job execution, e.g. agent requesting input from user.
  5. Client - refactored fetch_file method to use new stream and put capabilities
  6. Nornir test markdown - various markdown output improvements such as added total tests to summary, added test number column to the table, added host name next to every collected command, removed support for hosts inventory as it bogged browser memory for being too long.

FEATURES¤

  1. Client and worker - added delete_fetched_files task to remove files fetched from broker
  2. Created new filesharing service worker to host files, by default broker runs 1 such worker locally, this improves norfab hosting capabilities and open paths toward integrating with external file sharing resources e.g. github, s3, http etc.

0.14.0¤

CHANGES¤

  1. Netbox sync_device_interfaces - refactored to use bulk update and bulk create operations
  2. Netbox service - deprecated support for Netbox below 4.4.0 version
  3. Netbox service - get_interfaces added label and mark_connected fields
  4. Netbox service - get_connections added remote_device_status field
  5. Nornir service - test task added nornir hosts inventory to results if extensive set to true
  6. Nornir tests markdown - added hosts expandable inventory section
  7. Nornir tests markdown - added total tests number for detailed section for each host
  8. Nornir tests markdown - updated headings and paragraphs content
  9. Enhanced message construction for NFP protocol by adding message builder
  10. Enhanced client, worker and broker socket handling by adding thread locks

FEATURES¤

  1. Netbox service - added create_device_interfaces task
  2. Netbox service - added branch_create_timeout inventory argument to control timer waiting for new branch to be created
  3. Netbox service - added integration with Netbox BGP Plugin in a form of get_bgp_peerings task to fetch BGP sessions data for devices, added nfcli shell command to call get_bgp_peerings task.
  4. Netbox service - get_nornir_inventory task added support for bgp_sessions argument. if True, fetched devices' BGP peerings from netbox and stores them under bgp_sessions key in host's data.

BUGS¤

  1. Nornir tests markdown - fixed detailed output handling to not collect suite into summary table
  2. Nfcli - fixed show client command function calling

0.13.0¤

BUG FIXES¤

  1. Fixing event severity handling in worker.

CHANGES¤

  1. Changed worker to use sqlite database for job persistent storage instead of json files
  2. Netbox sync device facts - enhanced sync logic to use bulk device updates

FEATURES¤

  1. Nornir test task - added extensive argument to return detailed results
  2. Client - added markdown argument to run_job method to support rendering results into markdown output
  3. Client - added Nornir test task markdown render function to return tests results in a form of markdown report.
  4. Client - added generic markdown render function to return results in a form of markdown report.

0.12.7¤

FEATURES¤

  1. NFAPI logging - added support for logging->log_events parameter to emit events as syslog messages
  2. Added context manager support for NFAPI to simplify invocation from python scripts

CHANGES¤

  1. NFAPI changed start method arguments from start_broker to run_broker and workers to run_workers
  2. Nornir task - enhanced task import logic
  3. Nornir worker - added filter hosts method to reduce duplicate code
  4. NorFab client - added ensure_bytes method to reduce duplicate code

0.12.6¤

BUGS¤

  1. Netbox service - fixed get_circuits handling bug, was not returning circuits data due to recent code refactoring, updated test to catch this kind of an issue.

0.12.5¤

BUGS¤

  1. Containerlab - fixing error handling when result is None
  2. Workflow - fixed emitting event progress for cli shell
  3. Netbox - bulk ip create updated to sort interfaces names to make ip allocation order deterministic

CHANGES¤

  1. Updated dependencies:
  2. TTP 0.9.5 -> 0.10.0
  3. nornir-salt 0.22 -> 0.23

  4. Renamed Netbox service tasks:

  5. update_device_facts -> sync_device_facts
  6. update_device_interfaces -> sync_device_interfaces
  7. update_device_ip -> sync_device_ip

FEATURES¤

  1. Netbox service - get_connections enhanced to retrieve power outlet connections.

0.12.4¤

BUGS¤

  1. Netbox worker - fixing handling of Netbox instance for child subnet creation

FEATURES¤

  1. Netbox worker - update interface descriptions task now can supply dictionary of interface descriptions

0.12.3¤

BUGS¤

  1. Fixing handling of entry points for sourcing norfab workers plugins for Py3.10+

CHANGES¤

  1. Docker images updated to use Py3.11

0.12.2¤

CHANGES¤

  1. Updated Python version dependencies
  2. Adding FastMCP worker
  3. Updating agent worker - work in progress
  4. Adding Streamlit worker to host WEB UI - work in progress

0.12.1¤

BUGS¤

  1. Netbox service - restored Netbox v4.2.0 support
  2. Fixing Picle shell netbox get interfaces to have interface_regex argument
  3. Fixing Picle check netbox get connection arguments

0.12.0¤

BUGS¤

  1. FastAPI Service - fixing JSON references for OpenAPI schema, which previously broken led to error in swagger and redoc UIs rendering.

FEATURES¤

  1. Netbox service - get_interfaces task added interfaces_regex filter
  2. Netbox service - get_connections task added interfaces_regex filter
  3. Netbox service - get_connections added support to retrieve virtual interfaces connections for physical and lag interfaces
  4. Netbox service - create_ip added support to automatically assign IPs to link peers or use peers IP addresses prefixes to allocate next available IP address
  5. Netbox service - create_ip added support to create child subnet within parent prefix and assign IP out of it
  6. Netbox service - added new task create_ip_bulk to create IP addresses for devices using interfaces regex match
  7. FastMCP service - created NorFab MCP service

0.11.2¤

CHANGES¤

  1. Moving to Python 3.10 as primary supported version instead of 3.9 due to addition of FastMCP service which only supports Py3.10 and up.
  2. Updated build dockerfiles to use python:3.10-slim-trixie as a base image

BUGS¤

  1. Fixing FastAPI worker argument handling by setting it to all by default

0.11.1¤

BUGS¤

  1. Fixed containerlab show lab outputting
  2. Enhanced nfcli logic to be able to start broker and workers only without a client
  3. Updated aio Dockerfile to start broker and workers only

0.11.0¤

FEATURES¤

  1. FastAPI Services - enhanced to generate API endpoints for all services tasks automatically using @Task decorator data
  2. NFCLI - Picle show containerlab containers now emits output with nested tables
  3. Netbox Service - create_ip task enhanced to source prefixes to allocate next IP from using prefix description string
  4. Netbox Service - Added create_prefix task to allocate next available prefix
  5. Nornir Service - Adding nb_create_prefix Jinja2 filter allocate next available prefix during templates rendering
  6. Worker - Added fastapi argument to @Task decorator to control FastAPI REST API endpoints auto-generation
  7. Containerlab Service - added support for Containerlab 0.69+
  8. Netbox Service - added support for branching plugin, made create and update tasks be branch aware, updated nfcli shells to support branch argument
  9. Netbox Service - added delete_branch task

BUGS¤

  1. Fixing nornir test picle shell test task handling for verbose-result and dry-run
  2. Fixing nornir test handling for when suite renders to empty tests for a host
  3. Fixed Netbox service instance variable options sourcing for CLI shells

CHANGES¤

  1. Upgrading NAPALM library dependency from 5.0.0 to 5.1.0
  2. Upgrading PICLE library dependency from 0.9.0 to 0.9.1
  3. Upgrading Pynetbox library dependency from 7.4.0 to 7.5.0
  4. Refactoring Netbox service pydantic models
  5. BREAKING CHANGE: Starting NorFab 0.11.0 containerlab service only supports Containerlab 0.69+
  6. Dependencies updates.

0.10.0¤

FEATURES¤

  1. Adding support for Netbox >= 4.3.0
  2. Enhanced Netbox service inventory device filters to support GraphQL query string for device_list queries.
  3. Added Netbox service create_ip task to allocate new or source existing IP from prefix
  4. Added nb_create_ip Jinja2 filter to Nornir service to source IP allocations during templates rendering
  5. Added nfcli shell netbox create ip command to run IP allocations from interactive command line

0.9.1¤

BUGS¤

  1. Fixing list and dict annotations to also allow None values for workers tasks.

0.9.0¤

FEATURES¤

  1. Adding concurrency to worker jobs execution, adding new worker inventory parameter max_concurrent_jobs
  2. Adding @Task() decorator to expose worker methods as tasks, this decorator performs automatic type checking using type annotation, alternatively it supports input/output pydantic models to verify input arguments and return results.
  3. Passing on job argument to all NorFab tasks, job is an object that contains relevant metadata - client address, juuid, args, kwargs etc. Job object can be used to emit events.
  4. Adding workers echo task to perform tests, added respective nfcli commands tree workers.ping.
  5. Adding workers list_tasks method to return information about tasks in MCP compatible format.
  6. Added picle shell man.tasks command to retrieve information about NorFab services tasks

CHANGES¤

  1. Improved Netbox device update nfcli to include Fx hosts filtering for nornir datasource
  2. Result object added task_started and task_completed timestamp and service parameters

BREAKING CHANGES¤

  1. Instead of self.event worker now need to use job.event
  2. To add pydantic input / output models for tasks need to use @Task() decorator instead of @Task decorator
  3. Nornir Jinja2 templates context nornir.cli removed, need to use norfab.run_job instead

0.8.2¤

BUGS¤

  1. Fixed nornir inventory load from containerlab handling

0.8.1¤

BUGS¤

  1. Fixed show containerlab inventory command
  2. Fixed Nornir Worker inventory load handling
  3. Netbox interface update improving mac address handling

FEATURES¤

  1. Netbox service added get_containerlab_inventory task
  2. Containerlab service added deploy_netbox task

CHANGES¤

  1. Improved client post job retry logic
  2. FN filter argument for Nornir add presence handling for nfcli

0.8.0¤

CHANGES¤

  1. Restructuring pydantic models structures for better following DRY principles:
  2. Moved FastAPI models under norfab.models.fastapi
    1. Added norfab.models.nornir pydantic models
    2. Events and results models moved under norfab.models
  3. Added broker zmq_auth inventory parameter to turn zero mq authentication and encryption off
  4. Added verbose-result command line argument to relevant tasks to emit result details
  5. Updated CLI shells to support PICLE 0.9.0
  6. Enhanced Netbox service to support working with instances of Netbox of different major and minor releases

BUGS¤

  1. Fixed broker to allow workers reconnect on restart.

FEATURES¤

  1. Improved worker jinja2 templates rendering logic to allow render URL first and next download its content
  2. Added nornir refresh CLI command to refresh Nornir workers instances and reload inventory
  3. Added support for Netbox 4.2
  4. Added support for Nornir service to pull hosts inventory from Containerlab service

0.7.0¤

FEATURES¤

  1. Added new workflow service to run simple workflows constructed using YAML DSL

CHANGES¤

  1. NFCLI shells - updated to use nested outputter where appropriate
  2. Nornir worker - updated to set failed flag for its tasks according to test results
  3. Worker - Added status field to worker result object to reflect job execution status
  4. Nornir Service - replaced cfg_dry_run and cli_dry_run arguments with dry_run argument
  5. NFCLI shell - added aliases to use dash instead of underscore
  6. NFCLI shell - Moved Nornir service show commands under show nornir xyz path

0.6.0¤

FEATURES¤

  1. Added support for worker plugins
  2. Added support for nfcli custom shells

CHANGES¤

  1. All workers loaded into NorFab using entrypoints implementing lazy loading - workers classes only imported when they being used, in some cases allowing to save on startup time.

0.5.0¤

FEATURES¤

  1. FastAPI service added bearer authentication support
  2. Added hooks attachpoints nornir-startup and nornir-exit to influence Nornir service workers startup and exit

0.4.0¤

CHANGES¤

  1. Improved netbox get_circuits logic.
  2. Standardised worker get_version and get_inventory methods

Features¤

  1. Added runtime_inventory task to Nornir service, #6
  2. Added support to configure startup and exit hook functions in inventory to be executed by nfapi on start and on exit.

0.3.1¤

CHANGES¤

  1. Improved logging handling for NFAPI if it failing to start a worker
  2. Update client get method to return result as a dictionary for broker MMI, file and inventory services
  3. Enhanced Netbox update_device_facts and update_device_interface to support batch_size argument - a number of devices to process at a time
  4. Improved nfcli shell for Netbox service to provide more arguments for netbox update device facts command

FEATURES¤

  1. Added Netbox Service update_device_ip task to retrieve device interface IP addresses and create them in Netbox
  2. Added support to NorFab simple inventory and nfapi to load inventory from dictionary data as well as to explicitly provide base_dir information where to anchor NorFab environment
  3. Added support for NorFab inventory workers section items to be dictionaries in addition to OS path to YAML files allowing to construct workers inventory out of dictionaries and/or YAML files.

0.3.0¤

FEATURES¤

  1. Added "show version" support for nfcli client to display versions of locally installed libraries, fixes. #4
  2. Added "show broker version" support for nfcli client to retrieve broker report of the version of libraries broker is running on, fixes. #4
  3. Added support "show broker inventory" command to display broker inventory
  4. Simple inventory added support to produce a serialized dictionary output
  5. Broker added "show_broker_inventory" and "show_broker_version" MMI endpoints
  6. Added support for simple inventory service to render inventory using Jinja2, renderer passed on env variable that contains operating system environment variables, allowing to source any env data into NorFab inventory for both broker and workers. #5
  7. Created fastapi service to host REST API for NorFab

0.2.4¤

BUGS¤

  1. Fixed nfcli --workers-list handling
  2. Fixed job_data url handling for nornir cli/cfg/test tasks
  3. Fixed nfapi handling of empty worker name

FEATURES¤

  1. Added a set of confirmed commit shell commands to nornir cfg netmiko plugin

0.2.3¤

FEATURES¤

  1. Added nfcli --workers-list option to specify a list of workers to start

CHANGES¤

  1. Fixed handling of jinja2 import for the worker to make it optional

0.2.1¤

CHANGES¤

  1. Improved libs imports handling to account for distributed deployment
  2. Improved logging handling
  3. Fixed nfcli issue with starting components on NorFab #2
  4. Changed CTRL+C handling to trigger graceful NorFab exit

FEATURES¤

  1. Added broker -> shared_secret parameter in inventory.yaml to configure clients and workers broker shared secret key
  2. Added and tested docker files

0.2.0¤

CHANGES¤

  1. refactored get_circuits to use ThreadPoolExecutor to fetch circuits path from netbox
  2. adding job_data json load to nornir cli, cfg and test tasks

BUGS¤

  1. Fixing netbox get_devices dry run test
  2. Fixed netbox get_circuits devices site retrieval handling

FEATURES¤

  1. Added cache to Netbox get_circuits and get_devices tasks
  2. Added new agent worker to start working on use cases to interface with LLMs

0.1.1¤

BUGS¤

  1. Fixed Netbox CLI Shell handling of NFCLIENT

CHANGES¤

  1. Updated and tested dependencies for Netmiko 4.5.0
  2. Updated and tested dependencies for Nornir 3.5.0
  3. Updated and tested dependencies for Nornir-Salt 0.22.1

0.1.0¤

Changes¤

  1. Changes to Nornir service module files structure
  2. PICLE dependency updated: 0.7. -> 0.8.
  3. Made Nornir Service progress argument set to True by default to emit and display events for all Nornir Jobs
  4. Nornir tests changed table argument to be set to True by default
  5. Improved nfapi broker start logic to wait until broker fully initialized before proceeding to start workers

Features¤

  1. Added support for Nornir parse task to source TTP template from file with autocompletion
  2. Added Nornir File Copy task to copy files to devices using SCP
  3. Added support for logs to be collected into single file from all NorFab local processes
  4. Added to NorFab worker job_list and job_details methods
  5. Added show jobs summary and show jobs details commands to NorFab shell and to Nornir shell
  6. Added --create-env argument to nfcli utility to create NorFab folders and files to make it easier to get started using norfab

BUGS¤

  1. Fixed Nornir Service Watchdog to clean up dead connections from hosts data

0.0.0¤

Initial Release

Notable Features¤

  1. NorFAB Broker, Client and Worker base classes
  2. Nornir Service
  3. Network Service
  4. Simple Inventory Datastore Service
  5. File service
  6. ZeroMQ encryption