Commit Graph

237 Commits

Author SHA1 Message Date
bhaktinarvekar 073b16f329
Merge branch 'notebooks-v2' into notebooks-v2
Signed-off-by: bhaktinarvekar <56331957+bhaktinarvekar@users.noreply.github.com>
2025-09-13 18:35:22 -07:00
Bhakti Narvekar f3a4b5199e feat: Add dry-run functionality for WorkspaceKind creation
- Implement dry-run parameter handling in workspacekinds handler
- Update repository layer to support dry-run
- Add comprehensive test cases for dry-run functionality

Fixes #417
2025-09-13 17:57:03 -07:00
Guilherme Caponetto 253b25e477 feat: integrate the frontend shared libraries (#552)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-09-13 17:57:03 -07:00
Marina Koushnir 95431b4820 feat(ws): frontend Makefile to support deploy (#534)
* feat(ws): frontend Makefile to support deploy

Signed-off-by: CI Bot <mkoushni@redhat.com>

* mathew: fix 1

Signed-off-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com>

---------

Signed-off-by: CI Bot <mkoushni@redhat.com>
Signed-off-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com>
Co-authored-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com>
2025-09-13 17:57:03 -07:00
Guilherme Caponetto b210a5656f feat: enhance husky pre-commit hook to conditionally run lint checks for frontend changes (#549)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-09-13 17:57:03 -07:00
Guilherme Caponetto e666e2ebfb feat: add environment configuration files for frontend (#536)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-09-13 17:57:03 -07:00
Noa Limoy 42ffd9b0c5 feat(ws): add manifests for frontend (#487)
* feat(ws): Define k8s workload manifest for frontend component #404

Signed-off-by: Noa <nlimoy@redhat.com>

* fix: virtual-service tweaks from review

Signed-off-by: Andy Stoneberg <astonebe@redhat.com>

---------

Signed-off-by: Noa <nlimoy@redhat.com>
Signed-off-by: Andy Stoneberg <astonebe@redhat.com>
Co-authored-by: Andy Stoneberg <astonebe@redhat.com>
2025-09-13 17:57:03 -07:00
Liav Weiss 877e6de894 feat(ws): add manifests for backend (#455)
* feat(ws): Define k8s workload manifest for backend component #324

Signed-off-by: Liav Weiss (EXT-Nokia) <liav.weiss.ext@nokia.com>

* feat(ws): Define k8s workload manifest for backend component #324

Signed-off-by: Liav Weiss (EXT-Nokia) <liav.weiss.ext@nokia.com>

* feat(ws): add Istio AuthorizationPolicy for nb-backend #324

Signed-off-by: Liav Weiss (EXT-Nokia) <liav.weiss.ext@nokia.com>

* feat(ws): Define k8s workload manifest for backend component + istio - kubeflow#324

Signed-off-by: Liav Weiss (EXT-Nokia) <liav.weiss.ext@nokia.com>

---------

Signed-off-by: Liav Weiss (EXT-Nokia) <liav.weiss.ext@nokia.com>
Co-authored-by: Liav Weiss (EXT-Nokia) <liav.weiss.ext@nokia.com>
2025-09-13 17:57:03 -07:00
Paulo Rego 1950ea37b5 fix: fixed workspace kind summary breadcrumb navigation (#535)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-09-13 17:57:03 -07:00
Jenny 1f5c6e1fcb chore: Upgrade PatternFly to 6.3.0 (#532)
Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>
2025-09-13 17:57:03 -07:00
Guilherme Caponetto 1b14efde66 test: add unit tests for frontend hooks (#527)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-09-13 17:57:03 -07:00
Paulo Rego a932c0fc4c fix(ws): fixed filter by labels during workspace creation (#524)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-09-13 17:57:03 -07:00
Charles Thao fd2dc790ff feat: Refactor APP_PREFIX to const.ts (#523)
Signed-off-by: Charles Thao <cthao@redhat.com>
2025-09-13 17:57:03 -07:00
Guilherme Caponetto d2b97e78eb ci(ws): run client generator on frontend PR check (#519)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-09-13 17:57:03 -07:00
Charles Thao 053f2781ae feat: Conditionally render masthead on Production and Standalone modes (#516)
Signed-off-by: Charles Thao <cthao@redhat.com>
2025-09-13 17:57:02 -07:00
Charles Thao 673989fcea feat: Make Frontend Basepath Configurable via APP_PREFIX env variable (#517)
* Make Frontend Basepath Configurable via APP_PREFIX env variable

Signed-off-by: Charles Thao <cthao@redhat.com>

* Fix Cypress tests

Signed-off-by: Charles Thao <cthao@redhat.com>

---------

Signed-off-by: Charles Thao <cthao@redhat.com>
2025-09-13 17:57:02 -07:00
Guilherme Caponetto dcf6b93a46 feat(ws): automate generation of types and HTTP client layer from Swagger definitions (#496)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-09-13 17:57:02 -07:00
Paulo Rego 2d5b8304d7 chore(ws): comment workspace details logs and pod template tabs while they are not supported (#512)
* chore(ws): comment workspace details logs tab while it is not supported

Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>

* chore(ws): comment workspace details pod template tab while it is not supported

Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>

---------

Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-09-13 17:57:02 -07:00
Andy Stoneberg c50bdbbac8 chore(ws): update swag to 1.16.6 for required fields (#489)
- Updated swaggo/swag from v1.16.4 to v1.16.6 in go.mod and Makefile.
- Added required fields to various OpenAPI definitions in docs.go and swagger.json for better validation via `--requiredByDefault` flag
    - `swag` `v1.16.6` contains a commit we authored to treat `json:omitempty` as `required: false`.  That, in conjunction with `--requiredByDefault` flag, allows us to generate models with proper _required-ness_

Signed-off-by: Andy Stoneberg <astonebe@redhat.com>
2025-09-13 17:57:02 -07:00
Andy Stoneberg 039e0c9fae feat(ws): add @ID swag annotation to handlers (#488)
- added @ID annotations for all API routes to populate operationId Swagger attribute
- split GetWorkspacesHandler into 2 separate handlers to account for @ID needing to be unique-per-route
    - GetAllWorkspacesHandler now services GET /workspaces
    - GetWorkspacesByNamespaceHandler now services GET /workspaces/{namespace}
    - non-exported getWorkspacesHandler function contains all business logic that existed in GetWorkspacesHandler
- Adjusted test cases to align with the new handler names.

Signed-off-by: Andy Stoneberg <astonebe@redhat.com>
2025-09-13 17:57:02 -07:00
Guilherme Caponetto 77c69c5aa3 feat(ws): use workspace counts from API response (#508)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-09-13 17:57:02 -07:00
Paulo Rego 7a6bb30e76 feat(ws): fix workspaces table pagination (#506)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-09-13 17:57:02 -07:00
Jenny 7bed0beec1 fix(ws): Refactors toolbar and filter logic to fix "clear all filters" bug in workspace list view (#502)
Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

remove comment

fix(ws): remove set to first page when filters applied

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

fix tests for filterWorkspacesTest

fix single filter test

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

fix bug in ws kind table
2025-09-13 17:57:02 -07:00
Guilherme Caponetto bdbfe1bbd2 fix(ws): update frontend to support latest start/stop API changes (#503)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-09-13 17:57:02 -07:00
Andy Stoneberg f02f07c541 feat(ws): add workspace pause actions backend API (#340)
related: #298

- Added PauseActionWorkspaceHandler to handle pausing or unpausing a given workspace
- Introduced single new route for starting and pausing workspaces in the API.
    - `api/v1/workspaces/{namespace}/{name}/actions/pause`
			- pausing or unpausing operation is specified in the request payload
- Created a new WorkspaceActionPauseEnvelope type for successful responses.
- Leveraging JSONPatch / client.RawPatch to ensure Workspace in "valid state" before attempting action
    - for `start`: `spec.paused` must be `true`, and `status.state` must be `Paused`
    - for `pause`: `spec.paused` must be `false`
        - note: I would love to have a `status.state` check here of `status.state != Paused`, but that type of comparison is not supported in [JSONPatch](https://datatracker.ietf.org/doc/html/rfc6902#section-4.6)
- Added tests for the new API, including success and error cases.
- Updated README/OpenAPI documentation to include the new endpoints.

---

As an interesting "edge case" worth calling out, the following payload is currently honored by the API:
```
{
  "data": {}
}
```

Given the `WorkspaceActionPause` struct is simply `{"paused": true|false}`, the "empty" Envelope presented above deserializes the JSON using the zero value of `bool` (which is `false`).

Our validation today is always performed against the **deserialized** object, and as such impossible to distinguish the following cases:
```
{
  "data": {}
}
```

vs

```
{
  "data": {
    "paused": false
  }
}
```

The effort and (relative) complexity to prevent this and return a `422` in this scenario was not deemed "worth it" for the time being.  As a result, a test case has been added for this specific scenario to at minimum document this "strange" behavior.
- Clients, however, should **NOT** rely on this behavior and always provide a fully defined `WorkspaceActionPause` JSON object to ensure future compatibility.

Signed-off-by: Andy Stoneberg <astonebe@redhat.com>
2025-09-13 17:57:02 -07:00
Noa Limoy dd94a8f44f feat(ws): containerize frontend component (#394)
Signed-off-by: Noa <nlimoy@redhat.com>
2025-09-13 17:57:02 -07:00
Roee Afriat f1f1c8336b feat(ws): add ws counts to backend wsk model (#368)
Signed-off-by: rafriat <roee.afriat.ext@nokia.com>
Co-authored-by: rafriat <roee.afriat.ext@nokia.com>
2025-09-13 17:57:02 -07:00
Dominik Kawka 4b88c153e2 improve: UX Enhancements in workspace summary (#473)
* Workspace Kinds Summary:UX Enchancements

Signed-off-by: DominikKawka <dkawka@redhat.com>

* frontend build and test fix

Signed-off-by: DominikKawka <dkawka@redhat.com>

* replaced inline styling with PF utility classes

Signed-off-by: DominikKawka <dkawka@redhat.com>

* prettier check

Signed-off-by: DominikKawka <dkawka@redhat.com>

* fix(ws): apply left alignment and fix padding to match other items

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

* prettier check

Signed-off-by: DominikKawka <dkawka@redhat.com>

* resolved merge conflict

Signed-off-by: DominikKawka <dkawka@redhat.com>

* fixed merge conflicts

Signed-off-by: DominikKawka <dkawka@redhat.com>

---------

Signed-off-by: DominikKawka <dkawka@redhat.com>
Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>
Signed-off-by: Dominik Kawka  <31955648+dominikkawka@users.noreply.github.com>
Co-authored-by: Jenny <32821331+jenny-s51@users.noreply.github.com>
2025-09-13 17:57:02 -07:00
Jenny b18812a567 fix(ws): Apply sentence case to text elements across UI (#497)
Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

fix(ws): align nav item names with corresponding page headers

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

fix(ws): apply sentence case, fix tests

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

fix(ws): apply correct sentence case to TableTitleText
2025-09-13 17:57:02 -07:00
Paulo Rego b21cf69174 chore(ws): Upgrade vulnerable packages (#495)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-09-13 17:57:02 -07:00
Paulo Rego 296f63f3ca chore(ws): enforce component specific imports (#475)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-09-13 17:57:02 -07:00
Jenny 3218768df0 fix(ws): Implement dual scrolling for workspace kind wizard (#484)
Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

fix(ws): remove extra DrawerPanelBody

remove unused file

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

fix(ws): remove comment and hide drawer on previousStep callback

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

fix(ws): when navigating between wizard steps, show drawer for steps that have drawer content
2025-09-13 17:57:02 -07:00
Charles Thao de0e5c4356 feat(ws): Make Workspace Kind drawer resizable and add table view to WS kind details (#483)
Signed-off-by: Charles Thao <cthao@redhat.com>
2025-09-13 17:57:02 -07:00
Jenny 13a66aef2b fix(ws): normalize text case for workspace count buttons, update column header (#481)
Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

fix(ws): add className to remaining buttons in ws kind tabs

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

fix(ws): Update the column header to "Workspaces"

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

fix(ws): fix formatting in theme stylesheet
2025-09-13 17:57:02 -07:00
Charles Thao 3e7f44a7ae feat(ws): Refactor restYAML to restFILE (#478)
Signed-off-by: Charles Thao <cthao@redhat.com>
2025-09-13 17:57:02 -07:00
Charles Thao 0e90e5da65 feat(ws): Add advanced pod configurations in Workspace Edit (#468)
Signed-off-by: Charles Thao <cthao@redhat.com>
2025-09-13 17:57:02 -07:00
Jenny 5e9c88f582 chore(ws): Add support for PF utility classes (#476)
Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

chore(ws): Add support for PF utility classes
2025-09-13 17:57:02 -07:00
Jenny 3feccf7fca fix(ws): Improve workspace form drawer details and wizard flow (#467)
Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

move formatLabel to separate util

add title, divider, and fix wizard buttons to align with PF design guidelines

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

prevent wizard button from active state when no selection

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

rebase

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

handle standard infra resource types
2025-09-13 17:57:02 -07:00
Paulo Rego 3fed049233 chore(ws): upgrade deprecated rimraf transitive dependency (#474)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-09-13 17:57:02 -07:00
Jenny 9607fabd93 fix(ws): Updates to Table Columns, Expandable Rows, and Theming (#432)
Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

add icon to workspaceKindsColumns interface

fix(ws): Update table with expandable variant and fix styles

fix secondary border in menu toggle

fix menu toggle expanded text color and update icon to use status prop

remove unused files

add cluster storage description list group

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

Add title and packages

revert form label styling, revert homeVol column

fix linting

fix lint

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

Add PR code suggestions, remove unused interfaces

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

remove unused import

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

fix filterWorkspacesTest

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

fix(ws): apply feedback to fix Cypress tests

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

Update tests, add width to defineDataFields, remove duplicate WorkspaceTableColumnKeys type

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

fix wrapping behavior

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

Replace Th values with mapped instance

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

revert column order

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

remove hardcoded package label instances

Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

delete cursor rule
2025-09-13 17:57:02 -07:00
Paulo Rego da615f5f7e chore(ws): added prettier to test and test:fix scripts (#470)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-09-13 17:57:02 -07:00
Paulo Rego 989fe534d4 chore(ws): added cspell to enforce spelling check (#469)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-09-13 17:57:02 -07:00
Guilherme Caponetto 08c206d619 feat(ws): prepare frontend for validation errors during WorkspaceKind creation (#471)
* feat(ws): prepare frontend for validation errors during WorkspaceKind creation

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>

* feat(ws): extract validation alert to its own component

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>

* fix(ws): use error icon for helper text

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>

---------

Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-09-13 17:57:01 -07:00
asaadbalum 60d6de01f6 feat(ws): backend api to create wsk with YAML (#434)
* feat(ws): Notebooks 2.0 // Backend // API that allows frontend to upload a YAML file containing a full new WorkspaceKind definition

Signed-off-by: Asaad Balum <asaad.balum@gmail.com>

* mathew: 1

Signed-off-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com>

---------

Signed-off-by: Asaad Balum <asaad.balum@gmail.com>
Signed-off-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com>
Co-authored-by: Mathew Wicks <5735406+thesuperzapper@users.noreply.github.com>
2025-09-13 17:57:01 -07:00
Dominik Kawka db3e0005a7 fix: removed blank space on left of dropdown options (#329)
Signed-off-by: DominikKawka <dkawka@redhat.com>
2025-09-13 17:57:01 -07:00
Charles Thao d680ea03fd feat: workspace kind Edit Pod Configs (#425)
* Add Pod Config to WorkspaceKind form

Signed-off-by: Charles Thao <cthao@redhat.com>

* Add resource section for PodConfig

Signed-off-by: Charles Thao <cthao@redhat.com>

* Use refactored types

Signed-off-by: Charles Thao <cthao@redhat.com>

* Improve Resource input

Signed-off-by: Charles Thao <cthao@redhat.com>

* Move form view to edit mode only

Signed-off-by: Charles Thao <cthao@redhat.com>

* Bug fix and improvements

Signed-off-by: Charles Thao <cthao@redhat.com>

---------

Signed-off-by: Charles Thao <cthao@redhat.com>
2025-09-13 17:57:01 -07:00
Jenny c6e81c2a77 fix(ws): Improve Workspace Creation Wizard Step Descriptions (#452)
Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>

Changes to step descriptions based on feedback
2025-09-13 17:57:01 -07:00
Charles Thao 23fed9c9a9 feat(ws): Make Create Workspace Kind button visible (#466)
Signed-off-by: Charles Thao <cthao@redhat.com>
2025-09-13 17:57:01 -07:00
Charles Thao 6ba18c0c22 feat: refactor Form View to Edit only (#451)
Signed-off-by: Charles Thao <cthao@redhat.com>
2025-09-13 17:57:01 -07:00
Guilherme Caponetto a4cd1c27c4 feat(ws): add fallback mechanism to broken images (#448)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-09-13 17:57:01 -07:00