databrickslabs / databrickslabs/ontos

[Feature]: Faceted Filter Sidebar

Open
#98 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type/feature
Dominant language
Python
Stars
212
Forks
71
Avg merge
4d 10h
Merged PRs (30d)
43

Description

Parent PRD

#95

What to build

Add a filter sidebar to the Index Search page that lets users narrow results by Type, Status, Domain, and Owner without typing structured queries.

Frontend — New SearchFilterSidebar component:

  • Rendered alongside IndexSearch (left sidebar or collapsible panel).
  • Checkbox groups for: Type (data-product, data-contract, asset-*, data-domain, etc.), Status (active, draft, deprecated, etc.), Domain (flat list initially — hierarchical in a later slice), Owner (top owners from facets).
  • Each group shows item counts from the facets field in the API response.
  • "My Items" toggle at the top: pre-filters by owner == current_user.email.
  • Filter changes update URL query params (?type=...&status=...&owner=...) and trigger a new search.
  • "Clear all filters" button.
  • Responsive: on mobile, filters collapse into a sheet/dropdown triggered by a filter icon button.

Frontend — IndexSearch layout update:

  • Two-column layout: sidebar (filters) + main area (search input + results).
  • Filters are read from URL query params on page load (deep-linkable).

Backend:

  • No new backend work required — filters are passed as query params to the API (added in #96). Client applies filters from URL params to the API call.

Acceptance criteria

  • SearchFilterSidebar component renders checkbox groups for Type, Status, Domain, Owner
  • Facet counts displayed next to each filter option
  • Selecting/deselecting a filter updates URL and triggers new search
  • "My Items" toggle filters by current user's email/username
  • "Clear all filters" resets all selections
  • Filters persist in URL (page refresh preserves filter state)
  • Responsive: collapses on mobile with filter icon trigger
  • Component test for SearchFilterSidebar (filter changes emit correct params)
  • Empty facet groups are hidden (e.g., if no "Owner" data, hide that group)

Blocked by

  • Blocked by #96 (needs facets in API response)

User stories addressed

  • User story 1 (filter by asset type)
  • User story 2 (filter by domain)
  • User story 4 (filter by status)
  • User story 5 ("My Items" quick filter)
  • User story 6 (filter by owner)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the existing IndexSearch entry point and inspect how the API response from #96 exposes facets and how query parameters are passed. Define the SearchFilterSidebar around the listed filter groups, URL persistence, responsive behavior, and the requested component test. Done means all acceptance criteria pass, including facet counts, empty-group hiding, My Items, clear-all, and deep-linked filters.

Written by the indexing model from the issue text.

Assessment

Domain
frontend, search
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.