Skip to content
Documentation Prelude Collector

Release Notes

Changes in each Prelude Collector release.

Each section below covers one release, newest first. Entries are append-only — shipped releases are not edited retroactively.

When a release contains breaking changes — anything that requires you to change configuration, update a downstream consumer, or alter operational habits when moving from one version to the next — it surfaces them under a dedicated Breaking changes heading. Read that section first before upgrading.

Version 1.1.0 — 2026-06-23

Highlights: Configuration is now fully environment-driven — docker compose up -d brings the collector up with no config file. This release adds bidirectional GitOps configuration sync, user-defined vendor profiles that drive CLI/SSH and collection behaviour, CSV bulk import of devices, per-subscription output routing, and a declarative SNMP lookup join for enriching rows. The web UI gains a redesigned navigation, a guided onboarding flow, and a persistent Data Explorer.

Added

  • GitOps configuration sync — keep your collector configuration in a Git repository, with changes flowing both ways. Export devices, data models, subscriptions, transforms, and output backends to a Git remote as a versioned, tagged commit; pull Git-side edits back through a previewed reconcile where Git is the source of truth. Works with GitLab or GitHub over HTTPS, in JSON or YAML. Secrets (device credentials, output secrets) are never written to Git. See GitOps configuration sync.
  • Vendor profiles — define reusable, schema-validated profiles per network OS that drive collection end to end: SSH/CLI session behaviour (prompt and error patterns, auto-responses), default gNMI encoding and path origin, and default NETCONF port. Profiles ship with a structured create/edit form, JSON/YAML export, revision history with diff and restore, and a full REST API. Built-in vendor defaults work out of the box; your edits are preserved across upgrades. See Vendor profiles.
  • Bulk device import from CSV — onboard many devices and their protocols at once from the Devices page. One row per device/protocol, multiple protocols per device, with a downloadable template and a per-row summary of what was created, skipped, or rejected.
  • Per-subscription output routing — choose which output backends each subscription feeds. The default stays broadcast (every enabled output); pin a subscription to a subset from either the subscription editor or the output settings.
  • SNMP foreign-data lookup (join) — enrich each SNMP row with a value joined from a second OID table, rebuilt every poll — a dynamic alternative to a static value map. Configured per mapping with a Test Lookup helper; ships with IS-IS neighbour-hostname resolution working out of the box.
  • Data Explorer — a persistent page to browse the data flowing for any device and model, with expandable rows and filters that can be pre-set from a subscription. Replaces the old per-subscription Message Capture page (a View in Data Explorer button links straight to the filtered view).
  • AI onboarding improvements — the AI wizard now validates paths and OIDs, can test against a real device in-wizard, and runs a device-grounded feedback loop. AI provider settings can be deleted or reset from the UI and the REST API.
  • Redesigned navigation and guided onboarding — a collapsible, labelled sidebar; a pipeline ribbon with per-stage tooltips and click-through to Health detail; a "data flowing end-to-end" tile on the dashboard; and an Outputs step added to Getting Started.
  • Unified device test hub — testing against a device (including raw CLI commands) is consolidated into a single test hub.
  • Pause / resume collection per device — toggling a device active/inactive now starts and stops its live collection.
  • Model coverage at a glance — the model list now shows each model's protocol and OS coverage.
  • Transform import/export — re-enabled transform import, with per-row export.

Changed

  • Configuration is now environment-driven. All settings are provided via COLLECTOR_* environment variables layered on built-in defaults; config.json is no longer used. See Breaking changes and Upgrade notes.
  • Bundled PostgreSQL image bumped from 16 to 18. New deployments use postgres:18-alpine. Existing deployments need a migration step — see Breaking changes and Upgrade notes.
  • The free-tier device cap is enforced — the free tier allows 20 active devices. Creating or activating a device past the cap is rejected (inactive devices never count).
  • License expiry suspends collection. When a license lapses past its grace period, running subscriptions are suspended and automatically resume when the license validates again; subscriptions you disabled by hand are left alone.
  • The per-subscription Message Capture page has been retired in favour of the Data Explorer.

Fixed

  • gNMI subscriptions that wedged now recover automatically, and the enabled/disabled toggle is honoured reliably on edit (idempotent unsubscribe; the engine reconciles on an API enabled-toggle).
  • Health reporting is more accurate: the high-latency threshold now scales with the collection interval (no more false alarms on slow-but-healthy subscriptions), and pipeline health is shown in severity tiers without false-positive output errors.
  • Collection correctness: probe/test runs no longer clobber a protocol's real status; the model registry reloads on model/mapping/field edits; and unresolved subscriptions re-subscribe after a model reload.
  • Device and protocol deletes now cascade correctly, and idle protocols are distinguished from failed ones in status badges.
  • A range of UI fixes across the data explorer, model and subscription modals, transform picker, licensing modal, and vendor-profile list.

Breaking changes

  • config.json is no longer read. Configuration has moved entirely to COLLECTOR_* environment variables. A deployment that relied on a mounted config.json must migrate its settings to environment variables (or an .env file) before upgrading. See the Configuration guide and Configuration reference.
  • Bundled PostgreSQL moved from 16 to 18. PostgreSQL cannot start on a data directory initialised by an older major version, so an existing postgres-data volume created under 16 will not come up under 18. New installs are unaffected; deployments using an external, self-managed PostgreSQL are unaffected. See Upgrade notes for the migration path.

Upgrade notes

  • Move every value you previously set in config.json to the matching COLLECTOR_* variable (the shipped .env.example lists them all). With those in place, docker compose up -d needs no config file.
  • PostgreSQL 16 → 18. If you run the bundled PostgreSQL, your existing postgres-data volume was initialised by PostgreSQL 16 and will not start under 18. Choose one path before upgrading:
    • Stay on 16 — pin the image back to postgres:16-alpine in your docker-compose.yml (or Podman Quadlet unit). The collector runs against both, so this is the zero-downtime option.
    • Migrate to 18 — back up the volume, then dump the database from a 16 container with pg_dump, start a fresh 18 volume, and restore into it with pg_restore/psql (or run pg_upgrade).
Filtering by: