v1.3.0
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
geoippipeline 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,embedsor 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./slackand/githubcompatibility endpoints are deliberately left untouched - Repeated events no longer get stuck at
pendingforever: 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 orphanpending 0/5rows. Deduplication is now explicit and bounded byWEBHOOK_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_KEYand--profile logging, which was documented nowhere;SYSLOG_TZ_OFFSETis 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 serverjs-yaml→ 4.3.x (GHSA-52cp-r559-cp3m): quadratic merge-key expansion, andyaml.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.