Skip to main content
Version: 9 - Germknödel

Advanced Search

The advanced search allows filtered search for all records in an Engine workspace.

To access the advanced search, first open the quick search popover by clicking into the quick search bar in the top navigation. Then click on the "Advanced Search" button.

the advanced search button in the quick search popover

note

The search query is written into the URL. If you use certain queries often, you can reuse them by saving the URL.

The advanced search screen is structured into three tabs: Resources, Executions, and Messages.

There are a wide number of possibilities to filter the search results.

the advanced search filters

Simple Filters

You can search by name, filter for type (e.g. Flow or Setting), and select if trashed items should be shown. For these filters you don't need to click on the search button, the search will be automatically performed.

Name Filter

Limits the search to contain only records with names that contain the given string. For example, the string "test" will yield results like "test-flow", "run-tests".

Type Filter

Limits the search to specific types.

the type filter

Record Status Filter

Limit the search to trashed or non-trashed records.

the record status filter

Advanced Filters

Engine allows you to use complex filtering logic to find records that fulfil very specific criteria.

Adding Filters

You can start adding filters by clicking on "Add filter".

the add filter button

Alternatively, you can right-click on a field of a record in the list view, then click on "Add as a filter"

the pop-over to add a filter

From here on, you can specify attributes to filter by, change the AND / OR logic, add more filters or groups. Once you're ready, click on "Search" to perform the query.

from here on you can specify the filter

Using AND / OR Logic

You can combine AND / OR operators and nest them in any combination. An operator is applied to every filter within its group. Clicking on "Add filter" adds a filter to the current group. Clicking on "Add group" creates a new group within the current group i.e. nesting.

Let's look at some examples to understand this better.

example 1: Simple AND

Here's how we can filter for records that are read-only and are created after a certain time.

  1. Select Is readonly from the attribute dropdown and set it to True.

  1. Add a filter to the current group.

  1. Select Created at from the attribute dropdown, then select After and set it to a time.

This filter would be equivalent to the following python code (using str instead of datetime for simplicity):

is_readonly is True and created_at > '2000-01-01 12:00'
example 2: Simple OR

To switch this logic to find records that are read-only or are created after a certain time, simply change AND to OR from the operator dropdown

  1. Follow the same steps as in the previous example but select OR from the operator dropdown.

This filter would be equivalent to the following python code (using str instead of datetime for simplicity):

is_readonly is True or created_at > '2000-01-01 12:00'
example 3: Combining AND and OR

For the final example, let's combine the two operators. This will also show us, how to nest operators using groups.

We will now create a filter that shows records that fulfil at least one of two conditions:

  • are read-only and are created after a certain time,
  • are not read-only and are created before that certain time.
  1. Start with an empty filter and set the operator to OR.

  1. Add a new group to create a nested condition. Now this group also has the button to add filters or new subgroups.

  1. Delete the attribute dropdown from the top level so the operator dropdowns are on the same level, next to each other.

  1. Add a filter to the subgroup with the AND operator. This subgroup will define the first condition.

  1. Add a second subgroup to the top group.

  1. Add a filter to the second subgroup. This subgroup will define the second condition.

  1. Now that you have the logical skeleton, fill in the attribute dropdowns.

This filter would be equivalent to the following python code (using str instead of datetime for simplicity):

(is_readonly is True and created_at > '2000-01-01 12:00')
or (is_readonly is False and created_at < '2000-01-01 12:00')

Direct vs. Indirect Filters

You can find records by attributes that are directly or indirectly associated with them. Indirect attributes are distinguishable by their ending: "(all attributes)"

An example for a direct filter would be finding records that are in a specific project (here we can directly filter by the project_id of the record)

here is a direct filter

An example for an indirect filter would be finding records that are in a project that was created by a specific user (here first we find projects that were created by a user with a specific id. Then we can see which records have those project_ids)

here is an indirect filter

Learn More

Projects
Trash (Deleted records)