Skip to content

v1.3.0

Choose a tag to compare

@Polliog Polliog released this 11 Aug 12:32
· 38 commits to main since this release
749b406

LogTide 1.3.0 brings two new custom dashboard panels, fixes webhook delivery to Discord and the stuck-at-pending bug behind repeated webhook events, and clears 18 Dependabot alerts.

Highlights

Custom dashboards

  • Geo map panel (discussion #287): GeoIP-enriched log volume on a world map, as country bubbles or per rounded location (~1 km) with city tooltips. Leaflet over a bundled Natural Earth outline: no tile servers, no CDN assets, works air-gapped and follows the app theme
  • The geoip pipeline step now also writes flat metadata keys (<target>_country, _country_code, _city, _place) so the map is a single group-by on TimescaleDB, ClickHouse and MongoDB alike; nested output is unchanged
  • Log table panel (#289): raw log rows with configurable metadata columns (exact key first, then dot path, same as Log Search), toggleable built-in columns, 10-100 rows, and two refresh modes: dashboard snapshot or a live WebSocket tail with stream-ticket auth

Webhooks

  • Discord destinations now work: Discord only accepts bodies carrying content, embeds or file parts, so it rejected the LogTide envelope with HTTP 400 and every delivery went to the dead-letter queue. Outbound bodies are now formatted per destination in the single dispatch primitive every webhook passes through, so channel tests, monitors, alerts, incidents, errors, retries and replays all arrive as embeds. /slack and /github compatibility endpoints are deliberately left untouched
  • Repeated events no longer get stuck at pending forever: the queue job key suppressed not just concurrent enqueues but every future occurrence of the same event on the Redis/BullMQ backend, so a monitor that went down twice delivered only the first occurrence and left orphan pending 0/5 rows. Deduplication is now explicit and bounded by WEBHOOK_DEDUP_WINDOW_MS (default 60s), with per-delivery job keys (migration 056)

Reliability fixes

  • graphile-worker queue pool no longer crashes the backend on connection loss (#291): a database restart took the process down with an uncaught exception on PostgreSQL-queue deployments. Reported by @Erasure5959
  • Tall dialogs no longer hide their own buttons: at 1366x768 the add-panel and panel-config dialogs pushed their primary actions off-screen with no way to scroll to them
  • Settings → Organization no longer shows a stale retention value (#288): the cached organization is now revalidated in the background and a missing retention no longer renders as a real 90-day policy. Reported by @SemoTech
  • Syslog collection requirements documented (discussion #292): the bundled Fluent Bit listener needs FLUENT_BIT_API_KEY and --profile logging, which was documented nowhere; SYSLOG_TZ_OFFSET is documented too

Security

18 Dependabot alerts cleared through root pnpm overrides. Two were actually reachable:

  • @sveltejs/kit → 2.70.2 (GHSA-29g2-3rmr-qm68): Accept-header ReDoS, reachable unauthenticated because the frontend image runs the adapter-node server
  • js-yaml → 4.3.x (GHSA-52cp-r559-cp3m): quadratic merge-key expansion, and yaml.load() runs on user-supplied documents in the Sigma, dashboard and pipeline import endpoints

Not reachable as configured, bumped anyway: undici → 7.29.0, find-my-way → 9.7.0, fast-uri → 3.1.5, postcss → 8.5.26, brace-expansion → 5.0.9, shell-quote → 1.10.0.

Full detail in CHANGELOG.md.