Commit Graph

172 Commits

Author SHA1 Message Date
Charles Thao fa5fb5a7cc
feat: Render Loading if Namespaces are fetching (#604)
Signed-off-by: Charles Thao <cthao@redhat.com>
2025-09-19 18:11:37 +00:00
Paulo Rego 426c6ad09b
chore(ws): Upgrade vulnerable packages (#602)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-09-18 15:05:35 +00:00
Charles Thao ade0282aca
feat: Hide entities with hidden flag on Workspace create (#581)
Signed-off-by: Charles Thao <cthao@redhat.com>
2025-09-15 16:36:33 +00:00
Paulo Rego 5d91ee05b2
chore: Upgrade vulnerable packages (#578)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-09-10 13:39:37 +00:00
Charles Thao aaf69dd28b
chore: Organize .gitignore for frontend (#577)
Signed-off-by: Charles Thao <cthao@redhat.com>
2025-09-10 13:38:37 +00:00
Charles Thao 027b59f47b
feat: Integrate Namespace with Central Dashboard UI (#521)
Signed-off-by: Charles Thao <cthao@redhat.com>
2025-09-09 11:31:36 +00:00
Guilherme Caponetto 0fbbe7a0ee
feat: integrate the frontend shared libraries (#552)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-09-04 19:13:12 +00:00
Marina Koushnir d5652e6361
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-04 19:04:12 +00:00
Guilherme Caponetto 9061874973
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-08-27 13:18:21 +00:00
Guilherme Caponetto 33319b1661
feat: add environment configuration files for frontend (#536)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-08-26 14:37:20 +00:00
Noa Limoy ebd5d2c3cb
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-08-21 17:34:06 +00:00
Liav Weiss 5a93916d50
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-08-21 17:09:06 +00:00
Paulo Rego 586a879a95
fix: fixed workspace kind summary breadcrumb navigation (#535)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-08-20 18:17:05 +00:00
Jenny 6b58425d4a
chore: Upgrade PatternFly to 6.3.0 (#532)
Signed-off-by: Jenny <32821331+jenny-s51@users.noreply.github.com>
2025-08-20 18:16:06 +00:00
Guilherme Caponetto 265d5af568
test: add unit tests for frontend hooks (#527)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-08-12 12:31:11 +00:00
Paulo Rego 2286b2c0d4
fix(ws): fixed filter by labels during workspace creation (#524)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-08-07 19:59:55 +00:00
Charles Thao 198be84a43
feat: Refactor APP_PREFIX to const.ts (#523)
Signed-off-by: Charles Thao <cthao@redhat.com>
2025-08-07 19:58:56 +00:00
Guilherme Caponetto 811a186b40
ci(ws): run client generator on frontend PR check (#519)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-08-07 18:20:56 +00:00
Charles Thao 03c14dd2d7
feat: Conditionally render masthead on Production and Standalone modes (#516)
Signed-off-by: Charles Thao <cthao@redhat.com>
2025-08-05 19:10:54 +00:00
Charles Thao ede4708f1a
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-08-05 18:25:53 +00:00
Guilherme Caponetto f25a22eac3
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-08-05 12:28:53 +00:00
Paulo Rego 1dad98b8c8
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-08-05 12:27:53 +00:00
Andy Stoneberg 4f0a29dec0
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-07-31 17:48:49 +00:00
Andy Stoneberg 639c24e81b
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-07-31 17:18:49 +00:00
Guilherme Caponetto d71a3f51ef
feat(ws): use workspace counts from API response (#508)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-07-29 19:20:47 +00:00
Paulo Rego 3fb42da2c0
feat(ws): fix workspaces table pagination (#506)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-07-29 19:19:47 +00:00
Jenny 63600e8d9f
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-07-29 11:18:47 +00:00
Guilherme Caponetto 32484d6eae
fix(ws): update frontend to support latest start/stop API changes (#503)
Signed-off-by: Guilherme Caponetto <638737+caponetto@users.noreply.github.com>
2025-07-25 17:35:01 +00:00
Andy Stoneberg 843e5c3c48
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-07-24 20:05:02 +00:00
Noa Limoy e747ad5e84
feat(ws): containerize frontend component (#394)
Signed-off-by: Noa <nlimoy@redhat.com>
2025-07-24 19:41:01 +00:00
Roee Afriat 0db1fd7c72
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-07-24 19:36:01 +00:00
Dominik Kawka f3fc2e200d
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-07-24 15:17:01 +00:00
Jenny a721c5073d
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-07-24 13:29:01 +00:00
Paulo Rego bd66a26175
chore(ws): Upgrade vulnerable packages (#495)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-07-23 11:15:00 +00:00
Paulo Rego 345481885e
chore(ws): enforce component specific imports (#475)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-07-21 19:26:58 +00:00
Jenny 3542f848de
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-07-21 15:08:58 +00:00
Charles Thao e05d4ad298
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-07-18 19:29:41 +00:00
Jenny d7664f8375
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-07-17 13:54:40 +00:00
Charles Thao 8def0ff0cf
feat(ws): Refactor restYAML to restFILE (#478)
Signed-off-by: Charles Thao <cthao@redhat.com>
2025-07-17 13:53:40 +00:00
Charles Thao fb0e74aa88
feat(ws): Add advanced pod configurations in Workspace Edit (#468)
Signed-off-by: Charles Thao <cthao@redhat.com>
2025-07-10 16:49:53 +00:00
Jenny 023f84b3a3
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-07-10 13:46:53 +00:00
Jenny e76308aee3
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-07-09 11:20:51 +00:00
Paulo Rego 768000ed68
chore(ws): upgrade deprecated rimraf transitive dependency (#474)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-07-09 11:16:51 +00:00
Jenny 526ef9dd58
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-07-07 19:09:50 +00:00
Paulo Rego 1916b95399
chore(ws): added prettier to test and test:fix scripts (#470)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-07-07 11:17:22 +00:00
Paulo Rego 825ed0e266
chore(ws): added cspell to enforce spelling check (#469)
Signed-off-by: paulovmr <832830+paulovmr@users.noreply.github.com>
2025-07-07 11:15:22 +00:00
Guilherme Caponetto cbedbfff58
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-07-07 11:14:21 +00:00
asaadbalum d38b24c76c
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-07-06 06:57:21 +00:00
Dominik Kawka f90ee781ac
fix: removed blank space on left of dropdown options (#329)
Signed-off-by: DominikKawka <dkawka@redhat.com>
2025-07-04 14:40:19 +00:00
Charles Thao e3a9c747d1
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-07-04 14:38:20 +00:00