github mr-karan/logchef v1.6.0

6 hours ago

LogChef 1.6 reorganizes saved queries around Collections — cross-team curation lists you can share with teammates. Teams now exist purely for access control. A new Editor team role sits between Member and Admin: editors can save queries and manage collections without getting full admin rights.

Heads-up: this release contains a SQL migration sequence and breaking URL changes. Read the Upgrade and Breaking changes sections before deploying.


✨ What's new

Collections

A new way to curate saved queries.

  • Personal collection auto-created per user. Anything you save lands in your personal collection by default.
  • Shared collections are invite-only, with two roles: owner (full control) and member (read + run). Items a member can't run for a source they don't have access to show with a lock icon.
  • Unified Saved Queries page. One page at /logs/saved with a collection picker (All / Personal / shared), inline search, and a flat table — replaces the old two-page layout.
  • "Add to Collection" drawer — open the menu on any saved query and tick the collections you want it pinned to. Create new collections inline.
  • Shareable links. /logs/saved/:queryId is the canonical share URL. The resolver picks the right team + source automatically, so the recipient lands directly on the query.

Editor team role

A new role between Member and Admin. Editors can:

  • Save and pin queries
  • Create, rename, and invite members to collections
  • Manage collections they own

They cannot invite team members or link sources — those stay admin-only.

Bigger result downloads

CSV / JSON exports now stream from the backend with synchronous admission control (HTTP 429 when at capacity), so very large exports no longer tip the server over.

OIDC skip_email_verified_check (#86)

Skip the email_verified ID-token claim on providers that don't propagate it — for example, Cloudflare Access in front of an upstream IdP. Off by default; opt in via config.

Native ClickHouse TLS (#88)

Configure TLS directly on the source connection. No more stunnel/sidecar to ship TLS to ClickHouse.

Calendar month/year drill-down

Faster navigation in the date picker for queries that span weeks or months.


🛠️ Fixed (vs v1.5.0)

  • Very large query results no longer OOM the browser — new [query] max_limit cap (default 100k rows). A large unbounded result set previously exhausted the renderer.
  • Long raw SQL in the URL no longer trips the server's HTTP header size limit.
  • "No source selected" race on the explorer — queries no longer execute against a stale source while the new source's schema is loading.
  • Stale-request guard on source switching — a slow in-flight loadSourceDetails response can't overwrite a fast one anymore.
  • Saved queries open against the right source — the query's source_id overrides stale ?source= params in the URL.
  • Export job pruner is crash-safe — interrupted prunes no longer leave orphaned download files behind.
  • Translate API errors are surfaced to the editor instead of failing silently.
  • Export download URLs are relative, so downloads work behind reverse proxies that rewrite hostnames.

💥 Breaking changes

LogChef 1.6 retires team-scoping for queries, alerts, query shares, and export jobs. There are no compat shims — the old paths return 404.

API

Removed / changed New
team_queries table saved_queries(source_id, created_from_team_id, created_by, …)
alerts.team_id, query_shares.team_id, export_jobs.team_id columns dropped
Team-scoped saved-query endpoints /api/v1/saved-queries
Team-scoped alert endpoints /api/v1/alerts
/api/v1/collections (new)
Alert notification payloads team_id / team_name removed; recipients resolve to users directly

Admin frontend URLs

Old New
/management/* /admin/*
/profile /settings/profile
/admin/sources/list /admin/sources
/admin/sources/edit/:id /admin/sources/:id/edit

Removed features

  • Query Folders — replaced by Collections.
  • Bookmarks (is_bookmarked) — replaced by the auto-created personal collection. Your starred queries migrate over automatically.

🗃️ Migration notes

Migrations 000016 → 000021 run on first boot. Most are SQLite table rebuilds with foreign-key handling to preserve child rows.

Migration What it does
000016 Drops query_folders + query_folder_items
000017 Rebuilds team_queriessaved_queries, drops team_id, adds created_by
000018 Drops team_id from alerts, query_shares, export_jobs; adds alerts.created_by
000019 Creates collections, collection_members, collection_items
000020 Drops is_bookmarked; seeds personal collections; migrates bookmarks to collection items
000021 Adds created_from_team_id to saved_queries; backfills from team_sources

Take a backup of your SQLite database before upgrading. Migrations are forward-only.


How to upgrade

Binary

Download the v1.6.0 binary, stop the running service, replace the binary, start the service. Migrations apply on first boot.

Docker

docker pull ghcr.io/mr-karan/logchef:v1.6.0
docker-compose down
docker-compose up -d

Follow-ups

  • If you run logchef-mcp from the separate repo, rewire it to /api/v1/saved-queries — the old team-scoped paths are gone.
  • Provisionable collections are not in this release; declarative config still covers teams, users, and sources.

Contributors

Thanks to @m0nikasingh for OIDC email-verification skip (#86), native ClickHouse TLS (#88), and AI SQL insert mode fix (#89).


Full changelog: v1.5.0...v1.6.0

Don't miss a new logchef release

NewReleases is sending notifications on new releases.