Advanced Search
The advanced search allows filtered search for all records in an Engine workspace.
Accessing the Advanced Search
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
The search query is written into the URL. If you use certain queries often, you can reuse them by saving the URL.
Using the Advanced Search
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.
AND
Here's how we can filter for records that are read-only and are created after a certain time.
- Select
Is readonly
from the attribute dropdown and set it toTrue
.
- Add a filter to the current group.
- Select
Created at
from the attribute dropdown, then selectAfter
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'
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
- 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'
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.
- Start with an empty filter and set the operator to
OR
.
- Add a new group to create a nested condition. Now this group also has the button to add filters or new subgroups.
- Delete the attribute dropdown from the top level so the operator dropdowns are on the same level, next to each other.
- Add a filter to the subgroup with the
AND
operator. This subgroup will define the first condition.
- Add a second subgroup to the top group.
- Add a filter to the second subgroup. This subgroup will define the second condition.
- 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