[pdm-devel] [PATCH datacenter-manager v2 0/9] implement more complex search syntax

Stefan Hanreich s.hanreich at proxmox.com
Mon Aug 25 15:48:25 CEST 2025


Some comments as replies w.r.t. pdm-search public API. I think the
syntax for the search itself is fine. Maybe document somewhere that this
is (at least partly) inspired by [1] and therefore in turn [2]?


Consider the patches:

Reviewed-by: Stefan Hanreich <s.hanreich at proxmox.com>


I also gave this a quick spin on my PDM instance and tried some
potential edge-cases as well.

One minor thing:

If I e.g. click on "All" in the Virtual Machines panel (or Container or
Remotes), only one search term is inserted without the required flag.
If I wanted to drill it down further (e.g. by name), it might be
convenient to make this required as well, so it doesn't turn into an OR
search then.

Tested-by: Stefan Hanreich <s.hanreich at proxmox.com>


[1] https://docs.gitlab.com/user/search/advanced_search/
[2]
https://www.elastic.co/docs/reference/query-languages/query-dsl/query-dsl-simple-query-string-query

On 8/25/25 11:00 AM, Dominik Csapak wrote:
> this introduces a more complex search syntax for the resources api call
> and uses that with the dashboard to show relevant resources, e.g.
> when clicking on the remotes panel when there are failed remotes, it
> adds a search to the box that filters for offline remotes. Same
> for clicking on the running vm count, etc.
> 
> The syntax is a first draft of mine, we can still tweak and change it
> as we see fit, but it's a start.
> 
> a 'normal' search term gets filtered to id/name so that does not change
> as before, but you can now specify 'categories' with `category:value`
> e.g. it's now possible to search for `type:remote` or `status:offline`
> 
> it also adds the possibility to mark terms as required like this:
> 
> +someterm
> 
> required terms have to exist in the resulting resource, while optional
> ones are OR'd (so at least one optional match must exist)
> 
> Not implemented yet are (but can be done afterwards):
> * GUI for filtering
> * Include subscription status
> 
> changes from v1:
> * added commit to improve text width
> * added commit to add clear trigger to search box
> * rebased on master
> 
> Dominik Csapak (9):
>   pdm-api-types: resources: add helper methods for fields
>   lib: add pdm-search crate
>   server: api: resources: add more complex filter syntax
>   ui: add possibility to insert into search box
>   ui: dashboard: remotes panel: open search on click
>   ui: dashboard: guest panel: search for guest states when clicking on
>     them
>   ui: dashboard: search for nodes when clicking on the nodes panel
>   ui: search box: add clear trigger
>   ui: dashboard: guest panel: improve column widths
> 
>  Cargo.toml                        |   2 +
>  lib/pdm-api-types/src/resource.rs |  27 ++++
>  lib/pdm-search/Cargo.toml         |  12 ++
>  lib/pdm-search/src/lib.rs         | 259 ++++++++++++++++++++++++++++++
>  server/Cargo.toml                 |   1 +
>  server/src/api/resources.rs       |  84 ++++++++--
>  ui/Cargo.toml                     |   1 +
>  ui/src/dashboard/guest_panel.rs   |  86 +++++++++-
>  ui/src/dashboard/mod.rs           |  46 +++++-
>  ui/src/dashboard/remote_panel.rs  |  32 +++-
>  ui/src/lib.rs                     |   3 +
>  ui/src/main.rs                    |  17 +-
>  ui/src/search_provider.rs         |  35 ++++
>  ui/src/widget/search_box.rs       |  40 ++++-
>  14 files changed, 612 insertions(+), 33 deletions(-)
>  create mode 100644 lib/pdm-search/Cargo.toml
>  create mode 100644 lib/pdm-search/src/lib.rs
>  create mode 100644 ui/src/search_provider.rs
> 





More information about the pdm-devel mailing list