Skip to content

Conversation

@fabricereix
Copy link
Collaborator

No description provided.

@fabricereix fabricereix marked this pull request as draft December 24, 2025 10:33
@jcamiel
Copy link
Collaborator

jcamiel commented Jan 7, 2026

@fabricereix grepping Hurl files on GitHub, we have 3190 source files. When I grep for "filter like expression" (rg '"\$.*\[.*\?.*\]' files/ ):

~30 files that may be impact or not. For instance:

files/rhpds/sandbox/tests/002_ocp.hurl
524:jsonpath "$[?(@.service_uuid=='{{uuid}}')]" count == 1
535:jsonpath "$[?(@.service_uuid=='{{uuid}}')]" count == 1
608:jsonpath "$.resources[?(@.annotations.namespace_suffix == 'dev')].namespace" contains "sandbox-{{guid}}-1-dev"
609:jsonpath "$.resources[?(@.annotations.namespace_suffix == 'test')].namespace" contains "sandbox-{{guid}}-2-test"
610:jsonpath "$.resources[?(@.annotations.namespace_suffix == 'prod')].namespace" contains "sandbox-{{guid}}-3-prod"
621:jsonpath "$[?(@.service_uuid=='{{uuid}}')]" count == 3
677:jsonpath "$.resources[?(@.annotations.purpose == 'ocp')]" count == 1
678:jsonpath "$.resources[?(@.annotations.purpose == 'aws')]" count == 1
679:jsonpath "$.resources[?(@.annotations.purpose == 'ocp')].status" contains "success"
680:jsonpath "$.resources[?(@.annotations.purpose == 'ocp')].credentials[0].kind" contains "ServiceAccount"
681:jsonpath "$.resources[?(@.annotations.purpose == 'aws')].available" contains false
682:jsonpath "$.resources[?(@.annotations.purpose == 'aws')].kind" contains "AwsSandbox"
11:jsonpath "$.invoices[?(@.invoiceStatus == 'VOID')]" count == 1
12:jsonpath "$.invoices[?(@.invoiceStatus == 'VOID')].number" includes "PPG-04195"
13:jsonpath "$.invoices[?(@.invoiceStatus == 'VOID')].amount" includes 2.06
14:jsonpath "$.invoices[?(@.invoiceStatus == 'VOID')].currency" includes "USD"
15:jsonpath "$.invoices[?(@.invoiceStatus == 'VOID')].id" exists
16:jsonpath "$.invoices[?(@.invoiceStatus == 'VOID')].dueDate" exists
17:jsonpath "$.invoices[?(@.invoiceStatus == 'VOID')].publicUrl" exists
18:jsonpath "$.invoices[?(@.invoiceStatus == 'PAID')]" count == 1
19:jsonpath "$.invoices[?(@.invoiceStatus == 'PAID')].number" includes "XGG-87291"
20:jsonpath "$.invoices[?(@.invoiceStatus == 'PAID')].amount" includes 2.06
21:jsonpath "$.invoices[?(@.invoiceStatus == 'PAID')].currency" includes "USD"
22:jsonpath "$.invoices[?(@.invoiceStatus == 'PAID')].id" exists
23:jsonpath "$.invoices[?(@.invoiceStatus == 'PAID')].dueDate" exists
24:jsonpath "$.invoices[?(@.invoiceStatus == 'PAID')].publicUrl" exists
25:jsonpath "$.invoices[?(@.invoiceStatus == 'OVERDUE')]" count == 1
26:jsonpath "$.invoices[?(@.invoiceStatus == 'OVERDUE')].number" includes "ZXL-37829"
27:jsonpath "$.invoices[?(@.invoiceStatus == 'OVERDUE')].amount" includes 2.06
28:jsonpath "$.invoices[?(@.invoiceStatus == 'OVERDUE')].currency" includes "USD"
29:jsonpath "$.invoices[?(@.invoiceStatus == 'OVERDUE')].id" exists
30:jsonpath "$.invoices[?(@.invoiceStatus == 'OVERDUE')].dueDate" exists
31:jsonpath "$.invoices[?(@.invoiceStatus == 'OVERDUE')].publicUrl" exists
32:jsonpath "$.invoices[?(@.invoiceStatus == 'DUE')]" count == 1
33:jsonpath "$.invoices[?(@.invoiceStatus == 'DUE')].number" includes "FMW-53533"
34:jsonpath "$.invoices[?(@.invoiceStatus == 'DUE')].amount" includes 2.06
35:jsonpath "$.invoices[?(@.invoiceStatus == 'DUE')].currency" includes "USD"
36:jsonpath "$.invoices[?(@.invoiceStatus == 'DUE')].id" exists
37:jsonpath "$.invoices[?(@.invoiceStatus == 'DUE')].dueDate" exists
38:jsonpath "$.invoices[?(@.invoiceStatus == 'DUE')].publicUrl" exists

Full List:

files/nordic-institute/X-Road/development/hurl/scenarios/setup.hurl
667:ss1_token_id: jsonpath "$[?(@.type == 'HARDWARE')].id" nth 0
1115:# TODO: Once it does, replace the jsonpath below with following: "$.endpoints[?(@.path == '/api/members' && @.method == 'GET')].id" nth 0
1116:ss0_test_rest_openapi_service_get_members_endpoint_id: jsonpath "$.endpoints[?(@.path == '/api/members')].id" nth 0

files/dukeofharen/httplaceholder/test/tests/01_conditions/07_jsonpath.hurl
15:    - "$.phoneNumbers[?(@.type=='iPhone')]"

files/dukeofharen/httplaceholder/test/tests/03_api/10_config.hurl
22:jsonpath "$[?(@.key=='storeResponses')].value" includes "false"
38:jsonpath "$[?(@.key=='storeResponses')].value" includes "true"

files/rhpds/sandbox/tests/002_ocp.hurl
524:jsonpath "$[?(@.service_uuid=='{{uuid}}')]" count == 1
535:jsonpath "$[?(@.service_uuid=='{{uuid}}')]" count == 1
608:jsonpath "$.resources[?(@.annotations.namespace_suffix == 'dev')].namespace" contains "sandbox-{{guid}}-1-dev"
609:jsonpath "$.resources[?(@.annotations.namespace_suffix == 'test')].namespace" contains "sandbox-{{guid}}-2-test"
610:jsonpath "$.resources[?(@.annotations.namespace_suffix == 'prod')].namespace" contains "sandbox-{{guid}}-3-prod"
621:jsonpath "$[?(@.service_uuid=='{{uuid}}')]" count == 3
677:jsonpath "$.resources[?(@.annotations.purpose == 'ocp')]" count == 1
678:jsonpath "$.resources[?(@.annotations.purpose == 'aws')]" count == 1
679:jsonpath "$.resources[?(@.annotations.purpose == 'ocp')].status" contains "success"
680:jsonpath "$.resources[?(@.annotations.purpose == 'ocp')].credentials[0].kind" contains "ServiceAccount"
681:jsonpath "$.resources[?(@.annotations.purpose == 'aws')].available" contains false
682:jsonpath "$.resources[?(@.annotations.purpose == 'aws')].kind" contains "AwsSandbox"

files/jazzytomato/intellij-hurl-plugin/sample.hurl
126:jsonpath "$.errors[?(@.id)].id" nth 0 == "error1"
127:jsonpath "$.errors[?(@.id=='error1')].id" nth 0 == "error1"
196:jsonpath "$.[?(@.id == 1)].name" nth 0 == "Bob"
197:jsonpath "$[?(@.id == 1)].name" nth 0 == "Bob"
203:jsonpath "$.fruit[?(@.price.US==200)].name" nth 0 == "grape"
204:jsonpath "$.fruit.[?(@.US == 100)]" count == 0   # To be clarified with spec: the first fruit is return by jsonpath.com
229:jsonpath "$..*[?(@.name)]" count == 5
230:jsonpath "$..*[?(@.name=='car')].id" nth 0 == 1
231:jsonpath "$..*[?(@.name=='wheel')].id" nth 0 == 4
233:jsonpath "$..items[?(@.name)]" count == 5
234:jsonpath "$..items[?(@.name=='car')].id" nth 0 == 1
235:jsonpath "$..items[?(@.name=='wheel')].id" nth 0 == 4
237:jsonpath "$.main.items[?(@.name)]" count == 3
238:jsonpath "$.main.items[?(@.name=='car')].id" nth 0 == 1
239:jsonpath "$.main.items[?(@.name=='wheel')].id" isEmpty
241:jsonpath "$.main..items[?(@.name)]" count == 4
242:jsonpath "$.main..items[?(@.name=='car')].id" nth 0 == 1
243:jsonpath "$.main..items[?(@.name=='wheel')].id" nth 0 == 4
2187:jsonpath "$..book[?(@.isbn)]" count == 2                                   # filter all books with isbn number
2188:jsonpath "$..book[?(@.isbn)].title" nth 0 == "Moby Dick"
2189:jsonpath "$..book[?(@.isbn)].title" nth 1 == "The Lord of the Rings"
2190:jsonpath "$..book[?(@.price<10)]" count == 2                               # filter all books cheaper than 10
2191:jsonpath "$..book[?(@.price<10)].title" nth 0 == "Sayings of the Century"
2192:jsonpath "$..book[?(@.price<10)].title" nth 1 == "Moby Dick"

files/ionos-cloud/external-dns-ionos-webhook/test/hurl/service_nodeport.hurl
100:node_ip: jsonpath "$.items[0].status.addresses[?(@.type=='InternalIP')].address" nth 0

files/cerbos/cerbos/hack/dev/playground.hurl
31:jsonpath "$.failure.errors[?(@.file == 'resource.yaml')].error" nth 0 == "cannot find derived roles 'apatr_common_roles' imported by policy resource.album_object.vdefault"
32:jsonpath "$.failure.errors[?(@.file == 'common_roles.yaml')].error" nth 0 == "Failed to read: policyType: exactly one field is required in oneof"
43:jsonpath "$.success.results[?(@.action == 'view')].effect" nth 0 == "EFFECT_ALLOW"
44:jsonpath "$.success.results[?(@.action == 'view')].policy" nth 0 == "resource.album_object.vdefault"
48:jsonpath "$.success.results[?(@.action == 'delete')].effect" nth 0 == "EFFECT_ALLOW"
49:jsonpath "$.success.results[?(@.action == 'delete')].policy" nth 0 == "resource.album_object.vdefault"

files/customeros/customeros/packages/server/customer-os-api/test/hurl/flow-routes/deactivate-webhook/deactivate-non-existing-webhook.hurl
31:jsonpath "$.hooks[?(@.url == '{{hook_url}}')].active" includes true

files/customeros/customeros-playground/packages/server/customer-os-api/test/hurl/invoice-routes/get-invoices-for-existing-organization.hurl
11:jsonpath "$.invoices[?(@.invoiceStatus == 'VOID')]" count == 1
12:jsonpath "$.invoices[?(@.invoiceStatus == 'VOID')].number" includes "PPG-04195"
13:jsonpath "$.invoices[?(@.invoiceStatus == 'VOID')].amount" includes 2.06
14:jsonpath "$.invoices[?(@.invoiceStatus == 'VOID')].currency" includes "USD"
15:jsonpath "$.invoices[?(@.invoiceStatus == 'VOID')].id" exists
16:jsonpath "$.invoices[?(@.invoiceStatus == 'VOID')].dueDate" exists
17:jsonpath "$.invoices[?(@.invoiceStatus == 'VOID')].publicUrl" exists
18:jsonpath "$.invoices[?(@.invoiceStatus == 'PAID')]" count == 1
19:jsonpath "$.invoices[?(@.invoiceStatus == 'PAID')].number" includes "XGG-87291"
20:jsonpath "$.invoices[?(@.invoiceStatus == 'PAID')].amount" includes 2.06
21:jsonpath "$.invoices[?(@.invoiceStatus == 'PAID')].currency" includes "USD"
22:jsonpath "$.invoices[?(@.invoiceStatus == 'PAID')].id" exists
23:jsonpath "$.invoices[?(@.invoiceStatus == 'PAID')].dueDate" exists
24:jsonpath "$.invoices[?(@.invoiceStatus == 'PAID')].publicUrl" exists
25:jsonpath "$.invoices[?(@.invoiceStatus == 'OVERDUE')]" count == 1
26:jsonpath "$.invoices[?(@.invoiceStatus == 'OVERDUE')].number" includes "ZXL-37829"
27:jsonpath "$.invoices[?(@.invoiceStatus == 'OVERDUE')].amount" includes 2.06
28:jsonpath "$.invoices[?(@.invoiceStatus == 'OVERDUE')].currency" includes "USD"
29:jsonpath "$.invoices[?(@.invoiceStatus == 'OVERDUE')].id" exists
30:jsonpath "$.invoices[?(@.invoiceStatus == 'OVERDUE')].dueDate" exists
31:jsonpath "$.invoices[?(@.invoiceStatus == 'OVERDUE')].publicUrl" exists
32:jsonpath "$.invoices[?(@.invoiceStatus == 'DUE')]" count == 1
33:jsonpath "$.invoices[?(@.invoiceStatus == 'DUE')].number" includes "FMW-53533"
34:jsonpath "$.invoices[?(@.invoiceStatus == 'DUE')].amount" includes 2.06
35:jsonpath "$.invoices[?(@.invoiceStatus == 'DUE')].currency" includes "USD"
36:jsonpath "$.invoices[?(@.invoiceStatus == 'DUE')].id" exists
37:jsonpath "$.invoices[?(@.invoiceStatus == 'DUE')].dueDate" exists
38:jsonpath "$.invoices[?(@.invoiceStatus == 'DUE')].publicUrl" exists

files/customeros/customeros/packages/server/customer-os-api/test/hurl/flow-routes/rotate-webhook/rotate-webhook.hurl
33:jsonpath "$.hooks[?(@.url == '{{hook_url}}')].active" includes true
62:jsonpath "$.hooks[?(@.url == '{{new_hook_url}}')].active" includes true

files/link-society/flowg/tests/e2e/spec/acl_users.hurl
9:jsonpath "$.users[?(@.name == 'root')].roles[*]" count == 1
10:jsonpath "$..users[?(@.name == 'root')].roles[*]" includes "admin"
11:jsonpath "$.users[?(@.name == 'guest')].roles[*]" count == 0

files/fparisotto/bookmark-hub/test.hurl
136:jsonpath "$.tags[?(@.tag=='rust')].count" includes 2
137:jsonpath "$.tags[?(@.tag=='tokio')].count" includes 2
138:jsonpath "$.tags[?(@.tag=='tracing')].count" includes 1
139:jsonpath "$.tags[?(@.tag=='metrics')].count" includes 1

files/fparisotto/bookmark-rs/test.hurl
138:jsonpath "$.tags[?(@.tag=='rust')].count" == 2
139:jsonpath "$.tags[?(@.tag=='tokio')].count" == 2
140:jsonpath "$.tags[?(@.tag=='tracing')].count" == 1
141:jsonpath "$.tags[?(@.tag=='metrics')].count" == 1

files/ues-io/uesio/apps/platform-integration-tests/hurl_specs/component_dependencies.hurl
112:jsonpath "$.dependencies.componenttype[?(@.type=='DECLARATIVE')]" count == 3

files/ues-io/uesio/apps/platform-integration-tests/hurl_specs/labels_translations.hurl
12:jsonpath "$.dependencies.label[?(@.name=='save')].value" nth 0 == "Save"
13:jsonpath "$.dependencies.label[?(@.name=='save')].namespace" nth 0 == "uesio/io"
14:jsonpath "$.dependencies.label[?(@.name=='session_expiration_msg')].value" nth 0 == "Your session has expired. Please login again."
15:jsonpath "$.dependencies.label[?(@.name=='session_expiration_msg')].namespace" nth 0 == "uesio/core"
32:jsonpath "$.dependencies.label[?(@.name=='save')].value" nth 0 == "Guardar"
33:jsonpath "$.dependencies.label[?(@.name=='save')].namespace" nth 0 == "uesio/io"
34:jsonpath "$.dependencies.label[?(@.name=='add')].value" nth 0 == "Añadir"
35:jsonpath "$.dependencies.label[?(@.name=='add')].namespace" nth 0 == "uesio/io"
42:jsonpath "$.dependencies.label[?(@.name=='helloworld')].value" nth 0 == "hola mundo"

files/StyraInc/styra-demo-tickethub/tests/api/conditions.hurl
31:jsonpath "$.tickets[?(@.id == 4)].resolved" includes false
32:jsonpath "$.tickets[?(@.id == 4)].assignee" includes null
33:jsonpath "$.tickets[?(@.id == 2)].resolved" includes true
34:jsonpath "$.tickets[?(@.id == 2)].assignee" includes "ceasar"
60:jsonpath "$.tickets[?(@.id == 4)]" count == 0

files/Keyrunes/keyrunes/hurl/verify_ui_hidden.hurl
43:group_id: jsonpath "$[?(@.name=='admin')].group_id" nth 0

files/ues-io/uesio/libs/apps/uesio/tests/hurl_specs/labels_translations.hurl
12:jsonpath "$.dependencies.label[?(@.name=='save')].value" nth 0 == "Save"
13:jsonpath "$.dependencies.label[?(@.name=='save')].namespace" nth 0 == "uesio/io"
14:jsonpath "$.dependencies.label[?(@.name=='session_expiration_msg')].value" nth 0 == "Your session has expired. Please login again."
15:jsonpath "$.dependencies.label[?(@.name=='session_expiration_msg')].namespace" nth 0 == "uesio/core"
32:jsonpath "$.dependencies.label[?(@.name=='save')].value" nth 0 == "Guardar"
33:jsonpath "$.dependencies.label[?(@.name=='save')].namespace" nth 0 == "uesio/io"
34:jsonpath "$.dependencies.label[?(@.name=='add')].value" nth 0 == "Añadir"
35:jsonpath "$.dependencies.label[?(@.name=='add')].namespace" nth 0 == "uesio/io"
42:jsonpath "$.dependencies.label[?(@.name=='helloworld')].value" nth 0 == "hola mundo"

files/ScottyLabs/courses-backend/crates/datafetcher/scripts/file_urls.hurl
7:items_url: jsonpath "$[?(@.name == 'Available Syllabi')].items_url" nth 0
8:items_count: jsonpath "$[?(@.name == 'Available Syllabi')].items_count" nth 0

files/doublewordai/control-layer/tests/authenticated/admin-crud-group.hurl
51:jsonpath "$.data[?(@.name == '{{group_name}}')]" count == 1

files/clintjedwards/gofer/gofer/tests/namespaces.hurl
20:jsonpath "$.namespaces[?(@.id == 'default')]" exists
21:jsonpath "$.namespaces[?(@.id == 'testing')]" exists

files/NamandeepWadhwa/fragments/tests/integration/lab-10-dynamodb.hurl
62:jsonpath "$.fragments[?(@.id=='{{id}}')]" exists
63:jsonpath "$.fragments[?(@.id=='{{fragment2_id}}')]" exists
88:jsonpath "$.fragments[?(@.id=='{{id}}')]" isEmpty

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants