Notifications & Activity

Global search

Global search

Global search is the command palette that spans the whole product: one box that searches across assets, articles, users, locations, applications and topology nodes at once. It is typo-tolerant and ranked, so a near-miss or a partial word still finds the record.

Opening it

  • Press ⌘K (macOS) or Ctrl+K (Windows / Linux) from anywhere in the app, or
  • Click the search box in the top bar.

Start typing and results appear, grouped by kind. Move through them with the ↑ / ↓ arrows, press Enter to open the highlighted result, and Esc to close.

What it searches

Six kinds of records are indexed:

  • Assets — by name, asset tag or serial.
  • Articles — Knowledge Base articles, including their body text, so a procedure inside an article is findable. Only published articles are searchable; drafts never appear.
  • Users — by name and email.
  • Locations — by name and address.
  • Applications — by name and vendor.
  • Topology nodes — servers, VMs, containers and the rest of the infrastructure map, by label, IP address or linked asset name.

Use the filter chips above the results to scope the search to a single kind, or leave it on All to search everything. Selecting a result navigates straight to that record.

Each result row carries a small eye that appears when you hover the row (or when the keyboard selection lands on it). Hover the eye to peek at a generous preview of that record, or click it to pin the preview open. Pinned previews show an “Open full record” link that opens the entity in a new tab, so you can confirm you have the right “Juan D.” or the right LZ-0042 before you navigate.

Only one preview is open at a time, and Esc closes it (returning focus to the search box). To open a preview from the keyboard, highlight a result with the ↑ / ↓ arrows and press Alt + Enter — it opens and pins that result’s preview without navigating, and the footer lists it next to the other shortcuts. Most previews render instantly from the search result itself; an asset’s or user’s richer details (owner, location, role) load on demand the moment you open the preview, so opening it never slows the search down.

What you see depends on your permissions

Search results respect access control:

  • Users are dropped from search for anyone who cannot read the user directory (a Viewer by default), so search never becomes a back door to enumerate names and emails.
  • Articles are filtered to the folders you can actually open, so a restricted article never surfaces to someone who could not otherwise read it.

So two people may get different results for the same query — by design.

When search is unavailable

Search is powered by a separate search service, and it is deliberately fail-soft: if that service is down, the rest of lazyit keeps working and the palette shows a clear “search unavailable” message rather than pretending there are no results. Retry once the service is back.

Keeping the index fresh

The search index updates automatically as records are created, edited and removed. Two situations call for a manual rebuild:

  • After the first deploy, to populate the index from the existing database.
  • After the search service has been down, to repair any drift (for example a deletion that did not reach the index while it was offline).

An operator rebuilds every index by running reindex:all from the API (bun run reindex:all). This is an authoritative, zero-downtime rebuild: it loads exactly the live, visible set into a fresh index and swaps it in, evicting any stale entries, while search keeps serving the old index until the swap completes. The Knowledge Base in particular needs this run after a fresh deploy, or article search returns nothing until it does.