Skip to content

CORE-2197: Add metadata filtering to the app search endpoint. - #308

Open
slr71 wants to merge 2 commits into
cyverse-de:mainfrom
slr71:main
Open

CORE-2197: Add metadata filtering to the app search endpoint.#308
slr71 wants to merge 2 commits into
cyverse-de:mainfrom
slr71:main

Conversation

@slr71

@slr71 slr71 commented Aug 21, 2026

Copy link
Copy Markdown
Member

The following new query parameters have been added:

  • attribute: must be used in conjunction with attribute_value. If specfied, only apps that have been tagged with the specified attribute/value pair will be inclued in the listing.
  • attribute_value: must be used in conjunction with attribute. If specified, only apps that have been tagged with the given attribute/value pair will be included in the listing.

The following new query parameters have been added:

- `attribute`: must be used in conjunction with `attribute_value`.
  If specfied, only apps that have been tagged with the specified
  attribute/value pair will be inclued in the listing.
- `attribute_value`: must be used in conjunction with `attribute`.
  If specified, only apps that have been tagged with the given
  attribute/value pair will be included in the listing.

@psarando psarando left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍 🎉

I had a minor question about the Tapis app listings, but also note:
You may already have planned for this in the next PR, but I think we will also need to filter by avus in the list-apps-in-group function, or at least add support in the list-apps-in-real-group function, and in the virtual listing functions for shared-with-me and featured-apps.

Comment thread src/apps/service/apps/tapis.clj Outdated
Comment on lines +113 to +123
@@ -120,7 +120,7 @@
(listings/list-app tapis app-id))

(adminSearchApps [self search-term params]
(when (user-has-access-token?)
(when (and (user-has-access-token?) (every? string/blank? ((juxt :attribute :attribute_value) params)))

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should these attribute checks be part of the (if (apps-util/app-type-qualifies? self params) ...) check, so that an emptyAppListing is returned instead of nil?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, that's a good idea. The end result should be the same in both cases, but your suggestion is clearer. 👍

@slr71

slr71 commented Aug 21, 2026

Copy link
Copy Markdown
Member Author

Ah, thanks for mentioning the other endpoints. I'll update those endpoints as well next week.

@slr71

slr71 commented Aug 21, 2026

Copy link
Copy Markdown
Member Author

It looks like common-swagger-api.schema.apps/AppListingPagingParams is used in common-swagger-api.schema.apps.categories/OntologyAppListingPagingParams. Which isn't used by any other schemas in common-swagger-api. It appears that several endpoints use those two schemas but I don't have time to find and enumerate them today. I'll Submit another PR for common-swagger-api and corresponding PRs for terrain and apps next week. Feel free to let me know if you can think of other endpoints that might need to be updated.

@slr71

slr71 commented Aug 21, 2026

Copy link
Copy Markdown
Member Author

In the meantime, I think that the PRs for apps and terrain are ready to go. Feel free to merge them if you'd like to do some testing against the updated endpoints. Otherwise, I can merge them on Monday.

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