Skip to content

Conversation

@YuliaKrimerman
Copy link
Contributor

@YuliaKrimerman YuliaKrimerman commented Sep 24, 2025

Description

Implemented a comprehensive Hardware Configuration table within the Performance Insights tab of the Model Catalog details page, replacing the previous "Coming Soon" placeholder with a fully functional data table.
HardwareConfigurationTable: Main table component with sorting, and loading states
In addition includes a fork from @mturley that includes the scrolling of the table, as well as the left sticky columns and the use of mod-arch Table

How Has This Been Tested?

Screen.Recording.2025-10-01.at.5.28.00.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.

Comment on lines 3 to 6
export const mockHardwareConfigurations: HardwareConfiguration[] = [
{
id: '1',
hardwareConfiguration: '1 x A100-80',
Copy link
Contributor

Choose a reason for hiding this comment

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

@YuliaKrimerman @mturley I just wanted to understand the format of these metric data. I think these will be present in the customProperties of artifacts endpoint response right, or am I missing something?
for BFF mock data, I added these to the customProperties. so...

Copy link
Contributor Author

Choose a reason for hiding this comment

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

For my PR I just used a random mock for those fields. the true data should come once the API will be implemented

Copy link
Contributor

@mturley mturley Sep 29, 2025

Choose a reason for hiding this comment

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

@ppadti my understanding is that you're right that we'll have customProperties with these metrics on them. @YuliaKrimerman we should probably use the real object types here - we already have the CatalogModelArtifact type and we need to add artifactType and metricsType properties to it. The artifacts we'll use for this table will specifically have artifactType: 'metrics-artifact' and metricsType: 'performance-metrics', and then their customProperties contain things like hardware: { string_value:'H100' }, hardware_count: { int_value: 2 }, ttft_mean: { double_value: 35.48818160947744 }. See the "Exposing Jounce Metrics in the Model Catalog" section of this ADR doc.

Let's create some discriminated types for these different kinds of artifacts. Can you take the existing CatalogModelArtifact type, rename it to CatalogModelUriArtifact, move its createTimeSinceEpoch, lastUpdateTimeSinceEpoch and customProperties into a new CatalogModelArtifactBase, and make a new CatalogModelPerformanceMetricsArtifact type that also extends that base? That last type can have those literal artifactType and metricsType values and its own customProperties which contain the literal expected properties from the ADR instead of the generic ModelRegistryCustomProperties. Finally, we can make a union type CatalogModelArtifact = CatalogModelUriArtifact | CatalogModelPerformanceMetricsArtifact. Later we will also need to add an additional member to this union for the artifactType: 'accuracy-metrics', that will be needed for part of what we show on the updated landing page cards, but it's out of scope for this PR.

The existing code that fetches artifacts can still work with CatalogModelArtifact, and then in places where we need specific kinds of artifacts we can do something like if (artifact.uri) or if (artifact.metricsType === 'performance-metrics) to narrow it, then it will typecheck the use of the specific custom properties.

This may require looking at where we currently pull the URI out of an artifact on the details and register pages and having those places narrow the artifact. In fact, I think currently those places just grab the first artifact and assume it's the URI one, we'll need to fix that so they find an artifact that has a URI. We may have to make that fix as part of this PR if you're changing the types here:

https://github.com/kubeflow/model-registry/blob/main/clients/ui/frontend/src/app/pages/modelCatalog/screens/RegisterCatalogModelForm.tsx#L63

https://github.com/kubeflow/model-registry/blob/main/clients/ui/frontend/src/app/pages/modelCatalog/screens/ModelDetailsView.tsx#L94

I believe the updated API will have an artifactType: 'uri-artifact' but it doesn't currently so to keep things from breaking we can just look for the uri property.

Copy link
Contributor

Choose a reason for hiding this comment

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

@mturley if we can get this PR in, so we can avoid re-work on this maybe?

Comment on lines 90 to 93
className={
index < 2
? 'pf-v6-c-table__sticky-column pf-v6-c-table__sticky-column--left'
: ''
Copy link
Contributor

Choose a reason for hiding this comment

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

when I run this in patternfly theme - I am not seeing the sticky column.
I think we can add this isStickyColumnproperty to hardwareConfigColumns directly instead making this condition here.
SortableData<HardwareConfiguration>[] can have is isStickyColumn along with field, label and sortable.

Copy link
Contributor

Choose a reason for hiding this comment

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

Hmm... I was going to suggest we use the isStickyColumn prop directly on the Th like in this PF sticky columns example, but looking closer at that SortableData type it seems to extend ThProps. I don't think that property will end up on the Th unless you're spreading {...column} to it here right? I imagine we need to do that...

Ok looking closer, we are mixing component structures here. You're importing the PF Table directly but using the SortableData type for your columns, which is intended to be used with our own Table wrapper imported from mod-arch-shared. It should really have its own name...

Let's shift to using that mod-arch-shared Table component @YuliaKrimerman. Use our other tables from MR as a reference like the RegisteredModelTable. That way you pass your hardwareConfigColumns array directly into its columns prop and properties in there like isStickyColumn should work that way (and you won't need to render your own Th's. Instead of your own Tbody with a .map you'd use a rowRenderer callback.

Or if there is some other reason you can't use that abstraction let's talk through it.

Copy link
Contributor

@ppadti ppadti Sep 30, 2025

Choose a reason for hiding this comment

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

oh, I didn't see we are importing Table from patternfly - I assumed we use it from shared-library, so suggested using isStickyColumn property directly on hardwareConfigColumns, so that everything else will be handled there, sorry.

@google-oss-prow
Copy link

@ppadti: changing LGTM is restricted to collaborators

In response to this:

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Copy link
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.

A couple things here. Also, referencing the mockups we should put the whole hardware configuration table in a card, similar to how the areas of the newly updated model registry details pages are wrapped in cards.

We should switch to the mod-arch-shared Table abstraction if we can, but we'll want to make sure the props it ends up passing down to the PF Table match what is used in the PF "multiple left-aligned sticky columns" example. I'm not sure if we need to render the OuterScrollContainer and InnerScrollContainer ourselves as described there or if that's handled by the mod-arch-shared table... needs some investigation. Maybe that will help lead us to the issue we're having with width / double-scrollbar. It does look like the SortableData type that is intended for use with the mod-arch-shared Table does support properties like 'stickyMinWidth' | 'stickyLeftOffset' which match that PF example.

I left some comments about types as well. I think we can go ahead and adopt the correct types for the new artifacts as documented in the ADR so it's easier to connect things to the BFF when we're ready to.

Comment on lines 55 to 68
<style>
{`
.hardware-table-container {
width: 100%;
max-width: 100%;
overflow-x: auto;
}
.hardware-table-container table {
width: max-content;
min-width: 100%;
table-layout: auto;
}
`}
</style>
Copy link
Contributor

Choose a reason for hiding this comment

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

Let's avoid inline styles. If we really need custom CSS we should import a separate .scss file, but even that should be avoided if possible - the container sizing and scrolling behavior seems like something we could achieve with PatternFly props and/or utility classes. What happens without these styles?

Edit: ok, maybe this is tricky without custom styles, but we should still put them in a .scss file. I'll mess around to see if I can help solve this.

We do still get a double scrollbar effect here which we really need to avoid. If we can't figure it out as part of this PR and it's blocking things we could follow up in another PR but let's leave the issue open until we solve that I think.

Copy link
Contributor

Choose a reason for hiding this comment

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

maybe the double scrollbar is only happening with MUI and not with patternfly, I didn't see that happening with patternfly...

Comment on lines 90 to 93
className={
index < 2
? 'pf-v6-c-table__sticky-column pf-v6-c-table__sticky-column--left'
: ''
Copy link
Contributor

Choose a reason for hiding this comment

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

Hmm... I was going to suggest we use the isStickyColumn prop directly on the Th like in this PF sticky columns example, but looking closer at that SortableData type it seems to extend ThProps. I don't think that property will end up on the Th unless you're spreading {...column} to it here right? I imagine we need to do that...

Ok looking closer, we are mixing component structures here. You're importing the PF Table directly but using the SortableData type for your columns, which is intended to be used with our own Table wrapper imported from mod-arch-shared. It should really have its own name...

Let's shift to using that mod-arch-shared Table component @YuliaKrimerman. Use our other tables from MR as a reference like the RegisteredModelTable. That way you pass your hardwareConfigColumns array directly into its columns prop and properties in there like isStickyColumn should work that way (and you won't need to render your own Th's. Instead of your own Tbody with a .map you'd use a rowRenderer callback.

Or if there is some other reason you can't use that abstraction let's talk through it.

Comment on lines 95 to 102
style={{
width: `${column.width}ch`,
minWidth: `${column.width}ch`,
verticalAlign: 'middle',
height: 'auto',
lineHeight: '1.2',
textAlign: 'left',
}}
Copy link
Contributor

Choose a reason for hiding this comment

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

We really need to avoid inline styles. Things like this break when we upgrade PF. If you can't achieve what you need with existing component props or utility classes let's talk through what you're trying to solve here.

Comment on lines 29 to 31
className={
index < 2 ? 'pf-v6-c-table__sticky-column pf-v6-c-table__sticky-column--left' : ''
}
Copy link
Contributor

Choose a reason for hiding this comment

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

You should also be able to avoid passing in special sticky classes like this by rendering this as a Th instead of a Td and passing it the isStickyColumn prop (and other props depending on whether it's the first one or second one, see the description of the PF example). You'll have to conditionally use Th for only those first two columns I think. If conditionals are getting too crazy here, maybe just write out those two Ths and then only do your .map() for the rest of the array.

Comment on lines 3 to 6
export const mockHardwareConfigurations: HardwareConfiguration[] = [
{
id: '1',
hardwareConfiguration: '1 x A100-80',
Copy link
Contributor

@mturley mturley Sep 29, 2025

Choose a reason for hiding this comment

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

@ppadti my understanding is that you're right that we'll have customProperties with these metrics on them. @YuliaKrimerman we should probably use the real object types here - we already have the CatalogModelArtifact type and we need to add artifactType and metricsType properties to it. The artifacts we'll use for this table will specifically have artifactType: 'metrics-artifact' and metricsType: 'performance-metrics', and then their customProperties contain things like hardware: { string_value:'H100' }, hardware_count: { int_value: 2 }, ttft_mean: { double_value: 35.48818160947744 }. See the "Exposing Jounce Metrics in the Model Catalog" section of this ADR doc.

Let's create some discriminated types for these different kinds of artifacts. Can you take the existing CatalogModelArtifact type, rename it to CatalogModelUriArtifact, move its createTimeSinceEpoch, lastUpdateTimeSinceEpoch and customProperties into a new CatalogModelArtifactBase, and make a new CatalogModelPerformanceMetricsArtifact type that also extends that base? That last type can have those literal artifactType and metricsType values and its own customProperties which contain the literal expected properties from the ADR instead of the generic ModelRegistryCustomProperties. Finally, we can make a union type CatalogModelArtifact = CatalogModelUriArtifact | CatalogModelPerformanceMetricsArtifact. Later we will also need to add an additional member to this union for the artifactType: 'accuracy-metrics', that will be needed for part of what we show on the updated landing page cards, but it's out of scope for this PR.

The existing code that fetches artifacts can still work with CatalogModelArtifact, and then in places where we need specific kinds of artifacts we can do something like if (artifact.uri) or if (artifact.metricsType === 'performance-metrics) to narrow it, then it will typecheck the use of the specific custom properties.

This may require looking at where we currently pull the URI out of an artifact on the details and register pages and having those places narrow the artifact. In fact, I think currently those places just grab the first artifact and assume it's the URI one, we'll need to fix that so they find an artifact that has a URI. We may have to make that fix as part of this PR if you're changing the types here:

https://github.com/kubeflow/model-registry/blob/main/clients/ui/frontend/src/app/pages/modelCatalog/screens/RegisterCatalogModelForm.tsx#L63

https://github.com/kubeflow/model-registry/blob/main/clients/ui/frontend/src/app/pages/modelCatalog/screens/ModelDetailsView.tsx#L94

I believe the updated API will have an artifactType: 'uri-artifact' but it doesn't currently so to keep things from breaking we can just look for the uri property.

Comment on lines 11 to 20
<PageSection style={{ overflow: 'hidden', maxWidth: '100vw', width: '100%' }}>
<style>
{`
.performance-insights-container {
width: 100%;
max-width: 100%;
overflow-x: hidden;
}
`}
</style>
Copy link
Contributor

Choose a reason for hiding this comment

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

Yeah let's kill all the inline styles and start fresh, try using the sticky columns pattern with the mod-arch-shared version of the Table and then see what minimal tweaks it needs.

</FlexItem>
</Flex>
</FlexItem>
<FlexItem style={{ width: '100%', overflow: 'hidden' }}>
Copy link
Contributor

Choose a reason for hiding this comment

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

Same here with the inline styles

Signed-off-by: Yulia Krimerman <[email protected]>
Update hardware config table PR: Convert to use mod-arch-shared Table, minor cleanup
Copy link
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.

LGTM, just a couple things we should follow up on in the next PR

}
};

// TODO sticky isn't quite working with both columns and the scroll container is weird. double check PF docs
Copy link
Contributor

Choose a reason for hiding this comment

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

I forgot to remove this comment - I want to unblock your rebase, can you remove in the next PR @YuliaKrimerman ?

{hardwareConfigColumns.map((column) => (
<Td
key={column.field}
dataLabel={column.label.replace('\n', ' ')}
Copy link
Contributor

Choose a reason for hiding this comment

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

@YuliaKrimerman in the next PR can you also just switch this to dataLabel={column.label}? I forgot to remove the replace here which is no longer necessary

@google-oss-prow google-oss-prow bot added the lgtm label Oct 2, 2025
@mturley
Copy link
Contributor

mturley commented Oct 2, 2025

/approve

@google-oss-prow
Copy link

[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

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 2aedb1f into kubeflow:main Oct 2, 2025
23 checks passed
openshift-merge-bot bot pushed a commit to opendatahub-io/model-registry that referenced this pull request Oct 7, 2025
* Add STUB endpoint for filter_option and update types, mocks (kubeflow#1666)

* Add STUB endpoint for filter_option and update types, mocks

Signed-off-by: ppadti <[email protected]>

* Fix typo

Signed-off-by: ppadti <[email protected]>

* Fix logo url, update FE types

Signed-off-by: ppadti <[email protected]>

* Fix typo

Signed-off-by: ppadti <[email protected]>

---------

Signed-off-by: ppadti <[email protected]>

* Update RELEASE.md (kubeflow#1682)

following manifest re-org with 
- kubeflow#1576

Signed-off-by: Matteo Mortari <[email protected]>

* Use fixed keys for CatalogFilterOptionsList type (kubeflow#1687)

Signed-off-by: Mike Turley <[email protected]>

* build(deps): bump boto3 from 1.40.25 to 1.40.40 in /clients/python (kubeflow#1672)

Bumps [boto3](https://github.com/boto/boto3) from 1.40.25 to 1.40.40.
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](boto/boto3@1.40.25...1.40.40)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.40
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

* build(deps-dev): bump ruff from 0.12.12 to 0.13.2 in /clients/python (kubeflow#1673)

Bumps [ruff](https://github.com/astral-sh/ruff) from 0.12.12 to 0.13.2.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.12.12...0.13.2)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.13.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

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

* build(deps): bump typing-extensions from 4.14.1 to 4.15.0 in /clients/python (kubeflow#1675)

Bumps [typing-extensions](https://github.com/python/typing_extensions) from 4.14.1 to 4.15.0.
- [Release notes](https://github.com/python/typing_extensions/releases)
- [Changelog](https://github.com/python/typing_extensions/blob/main/CHANGELOG.md)
- [Commits](python/typing_extensions@4.14.1...4.15.0)

---
updated-dependencies:
- dependency-name: typing-extensions
  dependency-version: 4.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* build(deps): bump huggingface-hub from 0.35.0 to 0.35.2 in /clients/python (kubeflow#1681)

Bumps [huggingface-hub](https://github.com/huggingface/huggingface_hub) from 0.35.0 to 0.35.2.
- [Release notes](https://github.com/huggingface/huggingface_hub/releases)
- [Commits](huggingface/huggingface_hub@v0.35.0...v0.35.2)

---
updated-dependencies:
- dependency-name: huggingface-hub
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

* Merge model-catalog-enhancements branch (kubeflow#1656)

* feat(catalog): deploy postgres for model catalog (kubeflow#1584)

* feat(catalog): initialize postgres for model catalog

Initialize PostgreSQL database for model catalog with connection setup.
Refactored embedmd initialization code from model registry for reuse.
Added Kubernetes manifests for PostgreSQL StatefulSet, PVC, and service
configuration.

Signed-off-by: Paul Boyd <[email protected]>

* fix(catalog): remove chdir before loading catalogs

Instead of changing directories, pass the directory that files should be
relative to when loading a catalog.

Signed-off-by: Paul Boyd <[email protected]>

---------

Signed-off-by: Paul Boyd <[email protected]>

* feat(catalog): add postgres for catalog dev (kubeflow#1623)

Adding to tilt and docker compose.

Signed-off-by: Paul Boyd <[email protected]>

* feat(datastore): refactor type creation (kubeflow#1636)

- Refactor embedmd to created types from a spec, instead of database
  migrations.
- Add TypeRepository and TypePropertyRepository services

Signed-off-by: Paul Boyd <[email protected]>

* Add artifact types to the model catalog (kubeflow#1649)

* chore: update testutils to take a datastore spec argument

Signed-off-by: Paul Boyd <[email protected]>

* feat(catalog): add artifact types to openapi spec

And re-generate code.

Signed-off-by: Paul Boyd <[email protected]>

* feat(catalog): add database models and services

Signed-off-by: Paul Boyd <[email protected]>

---------

Signed-off-by: Paul Boyd <[email protected]>

* Update api/openapi/src/catalog.yaml

Co-authored-by: Dhiraj Bokde <[email protected]>
Signed-off-by: Paul Boyd <[email protected]>

* fix(catalog): set source_id type correctly

Signed-off-by: Paul Boyd <[email protected]>

* fix(catalog): fix k8s resource names

Signed-off-by: Paul Boyd <[email protected]>

---------

Signed-off-by: Paul Boyd <[email protected]>
Co-authored-by: Dhiraj Bokde <[email protected]>

* chore: bump MR py client version to 0.3.2 (kubeflow#1684)

Signed-off-by: Matteo Mortari <[email protected]>

* feat: use db as source in model catalog (kubeflow#1667)

* feat: switch to db usage WIP

Signed-off-by: Alessio Pragliola <[email protected]>

* fix: partially fix model_catalog_service tests

Signed-off-by: Alessio Pragliola <[email protected]>

* fix: tests

Signed-off-by: Alessio Pragliola <[email protected]>

* fix: change mustache template to support array of primitive type plus reflect removal

Signed-off-by: Alessio Pragliola <[email protected]>

* fix: /models endpoint not working

Signed-off-by: Alessio Pragliola <[email protected]>

* fix: artifacts route 500 status code

Signed-off-by: Alessio Pragliola <[email protected]>

* feat: make artifacts run on a unified repository

Signed-off-by: Alessio Pragliola <[email protected]>

* feat: add custom properties to catalog artifacts

Signed-off-by: Alessio Pragliola <[email protected]>

* feat: add tests files to db_catalog and ctalog_artifact

Signed-off-by: Alessio Pragliola <[email protected]>

* fix: pagination issues

Signed-off-by: Alessio Pragliola <[email protected]>

* fix: return 404 is the model does not exist in the Get model

Signed-off-by: Alessio Pragliola <[email protected]>

* fix: 500 error code on bad user input

Signed-off-by: Alessio Pragliola <[email protected]>

* fix: q parameter not working

Signed-off-by: Alessio Pragliola <[email protected]>

* chore: better function/alias naming

Signed-off-by: Alessio Pragliola <[email protected]>
Co-authored-by: Paul Boyd <[email protected]>

---------

Signed-off-by: Alessio Pragliola <[email protected]>
Co-authored-by: Paul Boyd <[email protected]>

* ci: dependabot prefers requirements.txt (kubeflow#1689)

followup to kubeflow#1658
given the following error:
```
Dependabot encountered the following error when parsing your .github/dependabot.yml:
The property '#/updates/1/exclude-paths/0' should be relative to the repository root.
Please update the config file to conform with Dependabot's specification.
```

Signed-off-by: Matteo Mortari <[email protected]>

* MC Hardware configuration table with mock data (kubeflow#1664)

* implemented Hardware configuration table with mock data

Signed-off-by: Yulia Krimerman <[email protected]>

* addressed comments and updated fields

Signed-off-by: Yulia Krimerman <[email protected]>

* addressed comments

Signed-off-by: Yulia Krimerman <[email protected]>

* configured types

Signed-off-by: Yulia Krimerman <[email protected]>

* Transition to using mod-arch-shared table and fix sticky columns

Signed-off-by: Mike Turley <[email protected]>

* Make customProperties-related utils generic

Signed-off-by: Mike Turley <[email protected]>

* Remove unused import

Signed-off-by: Mike Turley <[email protected]>

---------

Signed-off-by: Yulia Krimerman <[email protected]>
Signed-off-by: Mike Turley <[email protected]>
Co-authored-by: Mike Turley <[email protected]>

* chore(bff): handle SIGINT gracefully in development make targets (kubeflow#1670)

Signed-off-by: Eder Ignatowicz <[email protected]>

* fix: run catalog tests in github PRs (kubeflow#1700)

Signed-off-by: Paul Boyd <[email protected]>

* chore: remove go.work and go.work.sum (kubeflow#1695)

Signed-off-by: Paul Boyd <[email protected]>

* fix: test fuzz action run on fixed kubernetes version (kubeflow#1703)

Signed-off-by: Alessio Pragliola <[email protected]>

* Updates to support running fuzz_api tests against live cluster (kubeflow#1688)

Signed-off-by: Debarati Basu-Nag <[email protected]>

* fix: align MR and MC route paths  (kubeflow#1702)

* fix: align MR route paths with URL generation functions

Signed-off-by: manaswinidas <[email protected]>

* Fix Cypress tests for the routes change

Signed-off-by: manaswinidas <[email protected]>

* Fix linting issues

Signed-off-by: manaswinidas <[email protected]>

* Fix Cypress tests for the routes change

Signed-off-by: manaswinidas <[email protected]>

* Cleanup

Signed-off-by: manaswinidas <[email protected]>

* Add TODO for breaking changes

Signed-off-by: manaswinidas <[email protected]>

* Don't introduce ai-hub/ routes

Signed-off-by: manaswinidas <[email protected]>

* Cleanup Cypress tests

Signed-off-by: manaswinidas <[email protected]>

---------

Signed-off-by: manaswinidas <[email protected]>

* fix: catalog postgres secret name (kubeflow#1704)

Signed-off-by: Alessio Pragliola <[email protected]>

* Basic filters rendering (kubeflow#1698)

* inital implementation

Signed-off-by: rsun19 <[email protected]>

* added wrappers for basic filters

Signed-off-by: rsun19 <[email protected]>

* added filter mapping and fixed filters

Signed-off-by: rsun19 <[email protected]>

* added stronger types

Signed-off-by: rsun19 <[email protected]>

* changed useeffect

Signed-off-by: rsun19 <[email protected]>

* integrated bff stub

Signed-off-by: rsun19 <[email protected]>

* fixed filter search

Signed-off-by: rsun19 <[email protected]>

* fixed types

Signed-off-by: rsun19 <[email protected]>

* added tests

Signed-off-by: rsun19 <[email protected]>

* fixed lint warning

Signed-off-by: rsun19 <[email protected]>

* removed use effect

Signed-off-by: rsun19 <[email protected]>

* addressed some comments

Signed-off-by: rsun19 <[email protected]>

* fixed lint issue

Signed-off-by: rsun19 <[email protected]>

* fixed tests

Signed-off-by: rsun19 <[email protected]>

* Adjusting filter types

Signed-off-by: Mike Turley <[email protected]>

* Always show selected options even if they don't match search

Signed-off-by: Mike Turley <[email protected]>

* Fix

Signed-off-by: Mike Turley <[email protected]>

* fixed lint issue

Signed-off-by: rsun19 <[email protected]>

---------

Signed-off-by: rsun19 <[email protected]>
Signed-off-by: Mike Turley <[email protected]>
Co-authored-by: Mike Turley <[email protected]>

* build(deps): bump sigs.k8s.io/controller-runtime from 0.21.0 to 0.22.1 in /clients/ui/bff (kubeflow#1678)

Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.21.0 to 0.22.1.
- [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases)
- [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md)
- [Commits](kubernetes-sigs/controller-runtime@v0.21.0...v0.22.1)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/controller-runtime
  dependency-version: 0.22.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* build(deps): bump github.com/go-chi/chi/v5 from 5.2.2 to 5.2.3 (kubeflow#1671)

Bumps [github.com/go-chi/chi/v5](https://github.com/go-chi/chi) from 5.2.2 to 5.2.3.
- [Release notes](https://github.com/go-chi/chi/releases)
- [Changelog](https://github.com/go-chi/chi/blob/master/CHANGELOG.md)
- [Commits](go-chi/chi@v5.2.2...v5.2.3)

---
updated-dependencies:
- dependency-name: github.com/go-chi/chi/v5
  dependency-version: 5.2.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

* build(deps): bump ossf/scorecard-action from 2.4.2 to 2.4.3 (kubeflow#1690)

Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 2.4.2 to 2.4.3.
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](ossf/scorecard-action@05b42c6...4eaacf0)

---
updated-dependencies:
- dependency-name: ossf/scorecard-action
  dependency-version: 2.4.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

* Fix places where we missed using the new route util (kubeflow#1714)

Signed-off-by: Mike Turley <[email protected]>

* feat(catalog): load YAML catalogs into the database (kubeflow#1697)

* feat(catalog): load YAML catalogs into the database

- Add new ModelProviderFunc interface for pluggable model providers
- Implement SourceCollection for managing catalog sources and origins
- Refactor catalog loading to support multiple source formats
- Add comprehensive test coverage for new loading functionality
- Include database migrations for foreign key constraints
- Extend catalog models to support new artifact types

This introduces a more flexible catalog loading architecture that supports
loading models from YAML sources while maintaining backward compatibility.

Signed-off-by: Paul Boyd <[email protected]>

* fix(catalog): use the correct types for logo and readme fields

Signed-off-by: Paul Boyd <[email protected]>

* fix(catalog): silence missed event warnings

Signed-off-by: Paul Boyd <[email protected]>

* fix(catalog): default language and tasks to empty slices

Signed-off-by: Paul Boyd <[email protected]>

* fix(catalog): pause after receiving fsnotify events

We see multiple change events for files that are partially written, so
pause a bit to give time for the write to finish before we process it.

Signed-off-by: Paul Boyd <[email protected]>

---------

Signed-off-by: Paul Boyd <[email protected]>

* build(deps): bump github.com/brianvoe/gofakeit/v7 from 7.3.0 to 7.7.3 in /clients/ui/bff (kubeflow#1713)

Bumps [github.com/brianvoe/gofakeit/v7](https://github.com/brianvoe/gofakeit) from 7.3.0 to 7.7.3.
- [Release notes](https://github.com/brianvoe/gofakeit/releases)
- [Commits](brianvoe/gofakeit@v7.3.0...v7.7.3)

---
updated-dependencies:
- dependency-name: github.com/brianvoe/gofakeit/v7
  dependency-version: 7.7.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* chore(deps): upgrade to k8s.io/client-go v0.33.5 (kubeflow#1715)

Signed-off-by: Paul Boyd <[email protected]>

---------

Signed-off-by: ppadti <[email protected]>
Signed-off-by: Matteo Mortari <[email protected]>
Signed-off-by: Mike Turley <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: Paul Boyd <[email protected]>
Signed-off-by: Alessio Pragliola <[email protected]>
Signed-off-by: Yulia Krimerman <[email protected]>
Signed-off-by: Eder Ignatowicz <[email protected]>
Signed-off-by: Debarati Basu-Nag <[email protected]>
Signed-off-by: manaswinidas <[email protected]>
Signed-off-by: rsun19 <[email protected]>
Co-authored-by: Pushpa Padti <[email protected]>
Co-authored-by: Matteo Mortari <[email protected]>
Co-authored-by: Mike Turley <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dhiraj Bokde <[email protected]>
Co-authored-by: Alessio Pragliola <[email protected]>
Co-authored-by: Yulia Krimerman <[email protected]>
Co-authored-by: Eder Ignatowicz <[email protected]>
Co-authored-by: Debarati Basu-Nag <[email protected]>
Co-authored-by: Manaswini Das <[email protected]>
Co-authored-by: Robert Sun <[email protected]>
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.

3 participants