Skip to content

Conversation

@ZedLi
Copy link
Collaborator

@ZedLi ZedLi commented Oct 1, 2025

Description

For pages that have tables that display data from associates resources, we currently retrieve each associated resource 1 by 1 for each shown row to get the associated data and are unable to search columns that source data that doesn't exist in the primary table.

This PR adds the ability to search across multiple tables with joins. This allows us to search across multiple tables in the case where we have columns that use data from different resources. This does however force a dependency on us to load all the associated resources first as compared to making individual GET requests for each associated resource. But this is likely better than making all those GET requests at once (especially if they choose 50 items per page).

The main downside is there can be a noticeable increase in latency for the searches depending on the number of resources.

Screenshots (if appropriate)

Example with 400k aliases + 400k targets and searching between all the resources in both tables.

Before:

Screen.Recording.2025-10-01.at.6.10.41.PM.mov

After:

Screen.Recording.2025-10-01.at.6.13.51.PM.mov

How to Test

Go to the aliases page and try searching target names or alias IDs. It should search across both resources.

Checklist

  • I have added before and after screenshots for UI changes
  • [ ] I have added JSON response output for API changes
  • [ ] I have added steps to reproduce and test for bug fixes in the description
  • I have commented on my code, particularly in hard-to-understand areas
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • [ ] I have added a11y-tests label to run a11y audit tests if needed

PCI review checklist

  • I have documented a clear reason for, and description of, the change I am making.
  • If applicable, I've documented a plan to revert these changes if they require more than reverting the pull request.
  • If applicable, I've documented the impact of any changes to security controls.
    Examples of changes to security controls include using new access control methods, adding or removing logging pipelines, etc.

@ZedLi ZedLi self-assigned this Oct 1, 2025
@ZedLi ZedLi requested a review from a team as a code owner October 1, 2025 22:16
@vercel
Copy link

vercel bot commented Oct 1, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
boundary-ui Ready Ready Preview Comment Nov 5, 2025 4:54pm
boundary-ui-desktop Ready Ready Preview Comment Nov 5, 2025 4:54pm

text: search,
relatedSearches: [
{
resource: 'target',
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This makes the assumption that the destionation_id is always a target but that's the current state of aliases right now. If/when destination_id can be more than just targets, we'll need to re-visit this.

priya-patel04
priya-patel04 previously approved these changes Oct 23, 2025
Copy link
Collaborator

@priya-patel04 priya-patel04 left a comment

Choose a reason for hiding this comment

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

This looks great! Test cases helped to follow along 🙌

DhariniJeeva
DhariniJeeva previously approved these changes Oct 24, 2025
Copy link
Collaborator

@DhariniJeeva DhariniJeeva left a comment

Choose a reason for hiding this comment

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

looks good!

Copy link
Collaborator

@hashicc hashicc left a comment

Choose a reason for hiding this comment

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

I'm still reviewing, it all looks really good. I have this one question at the moment that maybe you can check my understanding on

hashicc
hashicc previously approved these changes Nov 5, 2025
Copy link
Collaborator

@hashicc hashicc left a comment

Choose a reason for hiding this comment

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

🚀 Looks great! Cool to see how it all came together from the api to the query builder

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants