Skip to content

Model Catalog Settings Table#1899

Merged
google-oss-prow[bot] merged 4 commits intokubeflow:mainfrom
YuliaKrimerman:catalog-source-table
Nov 24, 2025
Merged

Model Catalog Settings Table#1899
google-oss-prow[bot] merged 4 commits intokubeflow:mainfrom
YuliaKrimerman:catalog-source-table

Conversation

@YuliaKrimerman
Copy link
Copy Markdown
Contributor

Description

Implemented the catalog source configurations table for the Model Catalog Settings page. This table displays a list of CatalogSourceConfig objects with the following features:

  • Table columns: Name, Organization (Hugging Face only), Model visibility (Filtered/Unfiltered badges), Source type, Enable toggle, Validation status (placeholder), Actions, and Kebab menu

How Has This Been Tested?

  • Cypress tests: Added 15tests
Screen.Recording.2025-11-20.at.3.11.29.PM.mov

Merge criteria:

  • All the commits have been signed-off (To pass the DCO check)

  • The commits have meaningful messages

  • Automated tests are provided as part of the PR for major new functionalities; testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).

  • The developer has manually tested the changes and verified that the changes work.

  • Code changes follow the kubeflow contribution guidelines.

  • For first time contributors: Please reach out to the Reviewers to ensure all tests are being run, ensuring the label ok-to-test has been added to the PR.

If you have UI changes

  • The developer has added tests or explained why testing cannot be added.
  • Included any necessary screenshots or gifs if it was a UI change.
  • Verify that UI/UX changes conform the UX guidelines for Kubeflow.

Signed-off-by: Yulia Krimerman <juliapiterova@hotmail.com>
@YuliaKrimerman YuliaKrimerman changed the title initial MC Table Model Catalog Settings Table Nov 21, 2025
Signed-off-by: Yulia Krimerman <juliapiterova@hotmail.com>
Copy link
Copy Markdown
Contributor

@mturley mturley left a comment

Choose a reason for hiding this comment

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

Hmm - can you also change the BFF mock data so the mock default source with id "catalog-1" does not have excludedModels and includedModels? That would be nice for correctly showing the "Unfiltered" label.

Also, can you have the table default to no sort state applied, and pre-sort the data so that default sources appear at the top? This should be before we pass the data into the table, so if a user applies a sort it will override this.
Ugh, this doesn't actually appear to be possible the way the mod-arch-shared Table is implemented. Whatever, it's fine 😅

Comment on lines +33 to +40
const handleEnableToggle = (checked: boolean) => {
// For now, just show a notification as per requirements
// TODO: RHOAIENG-38347 - Implement actual enable/disable functionality
notification.info(
`Toggle ${checked ? 'enabled' : 'disabled'}`,
`"${catalogSourceConfig.name}" will be ${checked ? 'enabled' : 'disabled'} when functionality is implemented.`,
);
};
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.

Heh I just meant a window.alert() native stub, but this notification system is so easy that this is fine 😅 I don't think an alert on enable/disable is part of the design but perhaps it should be, maybe we preserve this later


const handleEnableToggle = (checked: boolean) => {
// For now, just show a notification as per requirements
// TODO: RHOAIENG-38347 - Implement actual enable/disable functionality
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.

We should not reference RH Jira tickets upstream. Can you remove these RHOAIENG comments and just leave generic TODOs?

sortable: false,
info: {
popover:
'Shows whether all models from a source appear in the model catalog or if visibility is filtered.\n\nAll models: Every model from the source appears in the catalog.\n\nFiltered: Only specific models appear, based on the visibility settings for that source.',
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.

These \n newline characters don't get rendered by the popover component, and the design includes a bulleted list which is not rendered here. This popover property is a ReactNode, you can pass JSX here instead and use PF components to lay out the popover contents.

Comment on lines +3 to +6
export enum CatalogSourceType {
YAML = 'yaml',
HUGGING_FACE = 'huggingface',
}
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.

Can you move CatalogSourceType to clients/ui/frontend/src/app/modelCatalogTypes.ts and use it to replace the hard-coded type: 'yaml'; and type: 'huggingface'; in the source config types there?

Signed-off-by: Yulia Krimerman <juliapiterova@hotmail.com>
};

const handleDeleteSource = () => {
// TODO: RHOAIENG-38351 - Implement actual delete functionality
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.

There's still a RHOAIENG comment here

/>
)}
</Td>
<Td dataLabel="Validation status">{/* TODO: RHOAIENG-38346 - Status implementation */}</Td>
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.

And another here

Signed-off-by: Yulia Krimerman <juliapiterova@hotmail.com>
@mturley
Copy link
Copy Markdown
Contributor

mturley commented Nov 24, 2025

/lgtm
/approve

@google-oss-prow google-oss-prow Bot added the lgtm label Nov 24, 2025
@google-oss-prow
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: mturley

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@google-oss-prow google-oss-prow Bot merged commit 99f813d into kubeflow:main Nov 24, 2025
26 checks passed
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.

2 participants