Skip to content

Add search/filter functionality to the All Miners table (and other miner-selection surfaces) #809

Description

@rowanschultz

Problem

When managing a fleet of 3,000+ miners, there is no way to quickly locate a specific miner by a unique identifier (MAC address, IP address, Worker Name, Serial Number, etc.). Users must scroll through the full table or rely on column sorting/filtering to find a specific device. This is especially painful when investigating a known miner (e.g., "the miner with MAC C8:98:DB:10:DC:7C had issues last week — is it healthy now?").

Proposed solution

Desired Behavior

Add a search input to the All Miners page (above or alongside the existing filter controls) that filters the table in-place as the user types.

Preferred approach (lazy/global search):

  • Single text input that matches across all identifier columns simultaneously
  • Debounced as-you-type filtering (200–300ms delay)
  • Matches against: Name, Serial Number, MAC Address, IP Address, Worker Name
  • Partial/substring matching (e.g., typing DC:7C matches C8:98:DB:10:DC:7C)

Acceptable fallback (column-scoped search):

  • If global cross-column search is too complex or has performance concerns at scale, allow the user to select a specific column to search within via a dropdown, then enter their search term.

Scope: Reuse across other surfaces

This search behavior should be implemented as a reusable component and embedded in any UI surface that involves selecting or browsing miners, including but not limited to:

  • Creating a rack (selecting miners to assign)
  • Manually adding miners to a group or site
  • Any future miner-picker or miner-list view

The goal is a consistent search experience wherever a user needs to find a specific miner.

Acceptance Criteria

  • Search input is visible on the All Miners page alongside existing filter/sort controls
  • Typing a query filters the table in-place (no navigation to a separate results view)
  • Matches work on partial strings (substring match)
  • Performs acceptably with 3,000+ miners in the table
  • Clearing the search restores the full (filtered) table
  • Search works in combination with existing filters (e.g., Status: Hashing + search for a MAC)
  • Same search component is used in rack creation and manual miner-addition flows
  • Search component is built to be reusable for future miner-selection surfaces

Duplicate check

  • I have searched existing issues and this is not a duplicate

Alternatives considered

No response

Component

Client (Web UI)

Additional context

Context

  • Current page has column filtering and sorting but no text search

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions