Skip to content

feat: extend search to include Domains, DNS Zones, Contacts, and Notes #402

@kevwilliams

Description

@kevwilliams

Summary

When search was added (#360) it covered only top-level entities: Organizations, Projects, and Users. The search API has since been extended to support arbitrary resource types via ResourceIndexPolicy. This issue extends the search UI to include sub-resources — Domains, DNS Zones, Contacts, and Notes — and redesigns the results panel to scale to the larger result set.

Image Image

Blocked by

datum-cloud/datum#214ResourceIndexPolicy resources must be deployed before the new resource types are searchable.

Tasks

  • Regenerate the TypeScript client from the search OpenAPI spec — the tenant field is currently missing from the generated SearchResult type in app/resources/openapi/search.miloapis.com/v1alpha1/types.gen.ts
  • Add search API helpers in app/resources/request/client/apis/search.api.ts for Domains, DNS Zones, Contacts, and Notes — use the existing executeSearch<T>() and buildQuery() pattern
  • Add React Query hooks in app/resources/request/client/queries/search.queries.ts for each new resource type
  • Rework app/components/app-search/index.tsx to the two-section layout per the design:
    • Entities section (as today): Organizations, Projects, Users
    • Resources section (new): Domains, DNS Zones, Contacts, Notes — 3 results each with a "See all →" link per group
  • Update icon and color assignments per the design:
    • Domains: green globe icon
    • DNS Zones: blue server icon
    • Contacts: orange contact icon
    • Notes: purple sticky-note icon

Notes

  • Notes do not currently have a detail page route — the Notes group should link to the list page until a detail view exists
  • Resource result rows are 40px tall (vs 44px for entity rows) per the design
  • Each resource group shows a max of 3 results; "See all →" links to the relevant filtered list page

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions