Skip to content

fix(assets): select asset relations in query#297

Merged
l1ttps merged 3 commits intomainfrom
fix-detail-assets
Mar 5, 2026
Merged

fix(assets): select asset relations in query#297
l1ttps merged 3 commits intomainfrom
fix-detail-assets

Conversation

@l1ttps
Copy link
Copy Markdown
Member

@l1ttps l1ttps commented Mar 5, 2026

No description provided.

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the asset detail view by ensuring all relevant asset relations are fetched from the backend, providing a more complete dataset. On the frontend, the user interface for displaying detailed asset information has been refactored, introducing dedicated components for code snippets and screenshots, and improving the robustness of favicon display. These changes aim to provide a richer and more reliable asset overview for users.

Highlights

  • Backend Data Fetching Improvement: Updated the asset query in the backend to eagerly load related asset and ipAssets data, ensuring comprehensive asset information is available for display.
  • Refactored Asset Detail UI: Introduced a new ViewCode component to standardize the display of raw HTTP headers and response bodies, improving readability and providing a dedicated copy functionality. The asset detail page now also includes a ScreenshotCell for displaying asset screenshots.
  • Enhanced Favicon Handling: Implemented a fallback mechanism for favicon display, showing a generic globe icon if the favicon image fails to load.
  • Screenshot Path Nullability: Adjusted the backend logic and DTO to correctly handle screenshotPath as potentially null, aligning with cases where an asset might not have a screenshot.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • console/src/pages/assets/components/asset-detail-sheet.tsx
    • Removed an unnecessary empty line.
  • console/src/pages/assets/components/asset-detail.tsx
    • Removed unused Button and toast imports.
    • Replaced Copy icon with Code icon for code-related sections.
    • Imported new ScreenshotCell and ViewCode components.
    • Removed the handleCopyHeader function, as its functionality is now encapsulated in ViewCode.
    • Updated ScrollArea class for better layout.
    • Relocated the HTTP Status display to be grouped with the Domain information.
    • Integrated the ScreenshotCell component to show asset screenshots.
    • Adjusted CSS class for page title wrapping from break-words to wrap-break-word.
    • Moved the Separator component to conditionally render within the TLS section.
    • Replaced direct display of httpResponses.raw_header with the ViewCode component.
    • Added a new section to display httpResponses.body using the ViewCode component.
  • console/src/pages/assets/components/asset-value.tsx
    • Imported Globe icon and useState hook.
    • Implemented isImageError state to track favicon loading failures.
    • Modified favicon rendering to display a Globe icon if the favicon URL is present but the image fails to load.
  • console/src/pages/assets/components/screenshot-cell.tsx
    • Removed an empty line and a comment for minor cleanup.
  • console/src/pages/assets/components/view-code.tsx
    • Added a new component ViewCode to display code snippets with a copy-to-clipboard button.
  • core-api/src/modules/assets/assets.service.ts
    • Changed leftJoin to leftJoinAndSelect for asset_service.asset and asset.ipAssets in the getAssets query to ensure these relations are loaded.
    • Removed an empty line in mapAssetServiceToAssetDto.
    • Modified screenshotPath assignment to explicitly set it to null if item.screenshotPath is undefined, preventing empty string paths.
  • core-api/src/modules/assets/dto/assets.dto.ts
    • Updated the screenshotPath property type to string | null to reflect its potential nullability.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@l1ttps l1ttps merged commit 5912aab into main Mar 5, 2026
10 checks passed
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request refactors the asset detail view by introducing a reusable ViewCode component for displaying code blocks and improves the data fetching by selecting related asset entities in the backend query. The changes also include UI tweaks and bug fixes, such as adding a fallback for broken favicon images and ensuring screenshotPath is handled correctly when it's null. I've identified a few minor issues with CSS class names that should be addressed.

Note: Security Review did not run due to the size of the PR.


return (
<ScrollArea className="flex-grow min-h-0 pr-2 sm:pr-4 mt-4 [&>div>div]:!block">
<ScrollArea className="grow min-h-0 pr-2 sm:pr-4 mt-4 [&>div>div]:block!">
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

It seems there's a typo in the Tailwind CSS class [&>div>div]:block!. The important modifier ! should be a prefix to the utility class, not a suffix. It should be [&>div>div]:!block to correctly apply the style.

Suggested change
<ScrollArea className="grow min-h-0 pr-2 sm:pr-4 mt-4 [&>div>div]:block!">
<ScrollArea className="grow min-h-0 pr-2 sm:pr-4 mt-4 [&>div>div]:!block">

<div className="md:col-span-2">
<span className="block mb-1">Page Title</span>
<p className=" break-words">{httpResponses.title}</p>
<p className="wrap-break-word">{httpResponses.title}</p>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The class wrap-break-word is not a standard Tailwind CSS utility. The correct class to break words to prevent overflow is break-words.

Suggested change
<p className="wrap-break-word">{httpResponses.title}</p>
<p className="break-words">{httpResponses.title}</p>

Comment on lines +14 to +15
<div className="relative font-mono rounded-xl p-4 sm:p-6 shadow-lg border border-gray-200 dark:border-stone-800 **w-full**">
<pre className="whitespace-pre-wrap leading-relaxed **overflow-x-auto**">
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The class names **w-full** and **overflow-x-auto** contain asterisks, which makes them invalid. These seem to be artifacts from editing and should be removed to apply the styles correctly.

Suggested change
<div className="relative font-mono rounded-xl p-4 sm:p-6 shadow-lg border border-gray-200 dark:border-stone-800 **w-full**">
<pre className="whitespace-pre-wrap leading-relaxed **overflow-x-auto**">
<div className="relative font-mono rounded-xl p-4 sm:p-6 shadow-lg border border-gray-200 dark:border-stone-800 w-full">
<pre className="whitespace-pre-wrap leading-relaxed overflow-x-auto">

l1ttps added a commit that referenced this pull request Mar 16, 2026
* feat(console, admin): add list users for administration

* feat(console): redesign user detail sheet

* fix(console): fix sorting for server datatable

* refactor(console): restyle user-detail-sheet

* feat(console): add confirm dialog for action ban

* feat(console): add user detail section

* fix(console): fix small typo in tls tab (#290)

* feat(asset): add tls filter for asset

* fix(core): fix asset test

* fix(asset): fix based on bot reviews

* fix(console): fix small typo in tls tab

* fix(console): add missing tls for queryParams in asset context

* fix(console): fix tls query hook in dashboard

---------

Co-authored-by: Quang Vinh <32523515+l1ttps@users.noreply.github.com>

* chore(deps): bump multer from 2.0.2 to 2.1.0 (#292)

Bumps [multer](https://github.com/expressjs/multer) from 2.0.2 to 2.1.0.
- [Release notes](https://github.com/expressjs/multer/releases)
- [Changelog](https://github.com/expressjs/multer/blob/main/CHANGELOG.md)
- [Commits](expressjs/multer@v2.0.2...v2.1.0)

---
updated-dependencies:
- dependency-name: multer
  dependency-version: 2.1.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat(targets): create multiple targets (#291)

* refactor(targets): combine logic create target in transaction

* feat(targets): add bulk target creation endpoint

* feat(targets): add bulk creation support

* fix(console): move tabList into component to avoid out of context (#293)

Co-authored-by: Quang Vinh <32523515+l1ttps@users.noreply.github.com>

* fix(assets): select asset relations in query (#297)

* refactor(ui): improve flow onboarding with first workspace creation and re-design settings ui  (#299)

* feat(console): add all workspaces navigation and improve 404 page UI

* refactor(layout): extract header into dedicated HeaderBar component

* refactor(console): add workspace-aware header layout

* refactor(console): convert workspace creation to page and add route protection

* refactor(console): update workspaces UI from table to card layout

* feat(workspaces): add member and target counts to workspace list

* refactor(settings): reorganize settings page with sidebar layout

* feat(settings): add API keys management

* refactor(settings): improve API key display layout

* fix(screenshot-cell): add type assertion for screenshotPath

* refactor(workspaces): use workspace selector hook

* feat(auth): add session retry with exponential backoff

* chore(agent): migrate ai agent

* feat(router): add admin users route

* feat(console): implement create user

* feat(console): add change name, email and reset password in user detail

* fix(console): fix duplicate tlsHosts in context

* fix(console): use loading state of data table and improve client user type

* fix(console): add admin route

* feat(console): Implement role-based access control for settings tabs and sidebar menu items based on user roles.

* style(console): update 'Add User' button to outline variant

* refactor(console): move add user button to table toolbar

* fix(console): add autoComplete to user detail input

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Quang Vinh <32523515+l1ttps@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: l1ttps <l1ttps443@gmail.com>
@l1ttps l1ttps deleted the fix-detail-assets branch March 22, 2026 03:23
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.

1 participant