RIDING BYTES
← All insights

August 12, 2026 · 6 min read

Spotlight in SENAITE 2.7: search syntax, command palette and client access

The rebuilt Spotlight search scopes by catalog with prefixes like s:, filters by workflow state with is:, runs commands after a slash and keeps lab-only catalogs away from client contacts. How to use it and how to configure it.

Spotlight in SENAITE 2.7: search syntax, command palette and client access

Spotlight is the search overlay that opens on a keyboard shortcut from any page in SENAITE, Ctrl+Space by default. Type a sample ID, press Enter, and you are on the sample. For many users that is all they ever do with it.

senaite.app.spotlight was rewritten for the 2.7 release cycle. The changes are merged on its 2.x branch and ship with SENAITE 2.7, which is not yet released at the time of writing. The new version is worth ten minutes of training, because three small pieces of syntax make it much faster than clicking through folders.

The search syntax

A prefix scopes the search to one catalog. s: searches only samples, w: worksheets, c: clients. s:CA20 finds samples whose ID or title matches CA20, without clients, contacts or setup items mixed in. A prefix is any short token of up to three letters or digits followed by a colon, and each catalog’s prefix is set in the control panel.

is: filters by workflow state. CA20 is:received finds matching items in a received state. Typing is: opens a list of the states that actually occur, limited to the scoped catalog when a prefix is used. The state is matched on whole parts of the state name, so received matches sample_received. The same rule has a side effect worth knowing: is:verified matches both verified and to_be_verified, because both names contain the part verified.

Inactive items are hidden unless you ask for them. A deactivated client or a retired analysis service does not show up in a normal search. is:inactive shows only inactive items, is:active only active ones. A search for a workflow state such as is:cancelled also finds cancelled items, since asking for a state switches the default off.

The tokens combine. s:CA20 is:received is a valid query, and the same tokens work in the search box of the full results page.

Results from several catalogs are ranked into one list by how well the ID or the title matches: an exact match first, then a match at the start, then a match anywhere.

Spotlight overlay searching for SW-0015. Catalog scope chips (All, Samples, Setup, Worksheets, SENAITE, Clients, Contacts, Senaite Storage Catalog) sit above a single Sample result for Riding Bytes with a sample_received tag. A footer hint reads 'active only · is:inactive to include'.
The overlay with a sample ID. Scope chips at the top, one ranked result, the active-only hint in the footer.

The chips above the results do the same as a prefix with the mouse. A click limits the search to one catalog, Ctrl or Cmd plus click adds a catalog to the selection.

The command palette

A / at the start of the query switches from search to commands. The palette lists every command the current user may run, and typing after the slash filters it: /new or /add narrows the list to the “create” commands.

Those create commands are built from the setup: for every content type the user is allowed to add in a setup folder, there is an entry such as New Analysis Service or New Instrument. A lab manager sees many of them, an analyst only the few they hold the permission for.

Spotlight overlay with '/new' typed in the search box. A COMMANDS section lists Add Samples, New Analysis Category, New Analysis Profile, New Analysis Service, New Analysis Specification, New Attachment Type, New Batch Label, New Calculation, New Contact, New Container Type, New Department, New Dynamic Analysis Specification, New Instrument, New Instrument Location, New Instrument Type.
The palette after /new: every create command the current user is permitted to run.

Further commands are configured in the control panel. Each has a title, an icon, a target URL (the placeholder ${portal_url} is replaced with the site address), optional keywords and an optional permission that hides it from users without it. A useful first entry in most labs is a command for a listing the team opens all day, for example the samples waiting for verification. Add-ons can ship their own commands through their registry profile.

The full results page

The overlay shows a limited number of hits. When the search is broader than that, the link in the overlay footer opens a full results page with catalog tabs and paging, where the same prefixes and is: tokens work.

What client contacts see

Client contacts can use Spotlight too, and before the rewrite they could find lab objects they had no access to, click them and land on an access error. No data leaked, but it was confusing.

Every catalog now has a Show for clients switch. Setup, worksheets, clients and contacts are off by default, everything else is on. Lab staff are never restricted by this switch: it only applies to users linked to a client contact.

Configuration

The control panel is under Site Setup, Spotlight Settings, and users with the setup permission also reach it from a link inside the overlay.

SENAITE Spotlight Settings, Catalogs tab. Each installed catalog appears as a row with fields for Catalog id, Label, Prefix, Portal types, Search index, Sort on, Sort order, Enabled checkbox and Show for clients checkbox. Rows visible: senaite_catalog_sample (prefix 's'), senaite_catalog_setup, senaite_catalog_worksheet (prefix 'w'), senaite_catalog, senaite_catalog_client (prefix 'c'), senaite_catalog_contact, senaite_catalog_report (prefix 'r'), senaite_catalog_label, senaite_catalog_analysis, senaite_catalog_auditlog, senaite_catalog_autoimport, senaite_attachments_catalog, senaite_catalog_storage (prefix 'x').
The Catalogs grid. Every installed catalog is listed; each row has its own label, prefix, Enabled and Show for clients.

Catalogs are discovered automatically. Every installed SENAITE catalog, including those of add-ons such as senaite.storage, appears in the grid without manual entry. The bookkeeping catalogs (analyses, audit log, import logs, attachments) are listed but disabled, so they do not flood the results. Reports are disabled by default as well.

Discovered catalogs get no prefix. The defaults are s, w, c and r (reports). An add-on catalog has none until you give it one. In the screenshot the storage catalog was given x by hand.

The shortcut is configurable. Some operating systems use Ctrl+Space to switch the keyboard input source. If it collides on your workstations, choose another combination such as Meta+k or Control+Shift+f. Maximum results, minimum characters before searching and the search delay are set in the same place.

What to agree on in the lab

  • Keep the default prefixes and print them on the quick reference card: s:, w:, c:, plus any you add.
  • Decide whether reports should be searchable. Enabling the reports catalog helps the office, but adds hits for every sample that has a report.
  • Review Show for clients after installing add-ons with their own catalogs, since a newly discovered catalog is visible to clients by default.
Two people reviewing notes on paper next to a laptop

Bring this to your lab

Whether you are evaluating SENAITE, scaling it across sites, or wiring up instruments and monitoring, the team that wrote the platform is the team you talk to.