Commit Graph

25 Commits

Author SHA1 Message Date
Alexandre Alves 0f967a9692
Session Idle feature refactor (#15509)
* redoing PR without changes

* fix stash apply

* fine tuning inactivity logic + add missing change to deprecate inactivity  performance setting

* update inactivity utils module to a singleton + fix e2e test

* fix e2e test

* fix e2e test

* fix e2e test

* finally fix session idle e2e testsg

* update PR based on comments

* update PR based on comments

* updating logic to inactivity

* fix broken e2e test + remove console logs
2025-10-22 10:07:09 +01:00
Phillip Rak 970a8df2a7
Add GitHub App auth provider (#15500)
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
2025-10-15 00:29:50 -07:00
Cody Jackson 8f4f5ecffb Fixes an issue where we didn't properly reference the root store
Fixes #11392

This was causing auth's that require redirect to fail.
2025-09-24 09:42:37 -07:00
Alexandre Alves 4121d5af7c
Support Single Logout for OIDC Auth Providers (#15412)
* wip

* add support for Single Logout for OIDC providers

* enforce endSessionEndpoint field as required

* fix reactiveness on header menu with auth providers + add validation for endSessionEndpoint field as url in oidc auth provider edit interface

* use after save hook to re-fetch auth providers once config options for one has been saved + remove fvValid code and keep isUrl check in validationPassed in oidc edit view

* fix unit test

* reset value of SLO radio input in providers
2025-09-23 09:36:12 +01:00
Cody Jackson 031056a406 Switching from $cookies to a cookies store to make data flow more consistent
fixes #11392
2025-09-11 16:13:48 -07:00
Neil MacDougall 59a08dfa07
Add support for vue route and extension init (#14590)d
* Add support for vue route and extension init

* Fix lint

* Minor doc fix, fix issue with buttons when scrolled

* Ensure onReady is only called once

* Address PD feedback

* Address more PR feedback - simplify close on action

* Add support for vue route and extension init

* Fix lint

* Ensure onReady is only called once

* Address PD feedback

* Tidy ups

* Add one missing tidy up
2025-06-26 16:40:12 +01:00
Neil MacDougall 6b7b4957af
Add auth provider config page for Amazon Cognito (#14422)
* Add auth provider config page for Amazon Cognito

* Fix e2e test

* Fix issue with cross-origin and the popup

* Change name on login screen and reduce code change

* Fix lint

* Fix e2e tests - fix bugs in po change

* Update auth-config.js

* Remove rancher url from test

* Address PR feedback

* Use selection grid

* Use selection grid po correctly

* Address Phil's PR feedback
2025-06-06 17:01:01 +01:00
Giuseppe Leo b3babd5cf8
Generic OIDC group scope is not sent in the request formed by the UI (#13514)
* Add basic store auth tests for redirect

* Define mixin tests

* Correct tests to cover all the cases correctly and ensure that this function works as expected

* Add scopes to the redirectTo request when testing the model

* Add unit tests for action test

* Add comment to save auth config method

* Correct unit tests

* Correct test to avoid the same term to be used for different parts

* Correct key value from scope to scopes to match existing implementation

* Update tests to use scopesJoinChar

* Add further tests for merging default scopes and UI scopes

* Add joinStringList function

* Correct scopes merging issues
2025-02-26 10:49:48 +01:00
Neil MacDougall bc66cc6835
Fix GitHub auth error (#13493)
* Fix auth error message for GitHub

* Apply to all oauth providers

* Increase timeout on Harvester e2e tests to reduce flakiness
2025-02-25 13:10:24 +00:00
Neil MacDougall 7e37210062
Use nicer error message for login nonce error (#13432) 2025-02-21 17:25:22 +00:00
Alexandre Alves 340d41031e
SAML SLO support (#11182)
* wip

* add logout action according to logic (SAML - logoutAll) + add modal to prompt user to select SLO logout type when logging out of Dashboard

* update authProvidersInfo method to allow for a getter usage in order to make it store reactive

* wip - missing final plumbing for the finalRedirectUrl

* bug fix for non-reactive header logout when auth provider is enabled

* adjust slo UI elements to match expected UI/UX

* minor adjustments + pr cleanup

* cleanup

* handle promise rejection for standard users (apparently they cannot get the schema)

* Updates
- Tweaked text (to be reviewed)
- Removed some code smells
- Ensure rancher logout via modal uses same process as normal logout
- Use async buttons in logout modal
- Add cancel to log out modal
- Fix logout on fail-whale page

* Add error handling (WIP with Andreas, does not currently reach final redirct / verify route)

* Fix check for IS_SLO

* Only allow optional auth provider log out if logged in auth provider

* Fix error message (SLO failures still result in rancher log out)

* check complete slo flow + add special copy when doing a slo logout

* Update shell/dialog/SloDialog.vue

Co-authored-by: Phillip Rak <rak.phillip@gmail.com>

* Update shell/edit/auth/saml.vue

Co-authored-by: Phillip Rak <rak.phillip@gmail.com>

* update syntax from phil pr review

* Fix logout modal on diangostics, about, etc pages that use plain template

* Remove PromptRemove from diagnostic page
- it uses the plain template which now contains it
- caused x2 modals to show

---------

Co-authored-by: Richard Cox <richard.cox@suse.com>
Co-authored-by: Phillip Rak <rak.phillip@gmail.com>
2024-08-22 19:16:06 +01:00
Jordon Leach bd70d4ca56
Switch context for generic oidc provider to the genericOIDCConfig type (#11326) 2024-07-02 08:20:47 -04:00
Jordon Leach c6a56aa60e
Add generic OIDC provider support (#11112)
* Add generic oidc provider support

* Add oidc provider icon - filter genericoidc provider - update tests

* Automatically set scope - disable advanced inputs initially

* Update oidc login button with unique display name

* Remove default scope for oidc provider

* Add acrValue - move scope inputs

* Clean up validation - update wording - remove rogue c&p

Fix unit tests

* Remove required authEndpoint input

* Require authEndpoint for keycloakoidc - clean up validation
2024-06-26 13:31:01 -04:00
Phillip Rak 5a00bcc07c Declare ``, ``, and `` in root state
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
2024-05-20 14:55:36 -07:00
Cody Jackson f163191243 Only logout if the user is logged in
This prevents us from redirecting multiple times when visiting the index on login
https://github.com/rancher/dashboard/issues/10926
2024-05-02 17:46:20 -07:00
Richard Cox 097a220225 Fix new, revealed issues. See PR for description 2024-02-29 17:30:26 +00:00
Nancy a0a86e8cb8
Forwardport ad migration (#9505)
* display 3rd party auth error messages when login fails

* improve login error message display
2023-08-09 11:34:31 -07:00
Richard Cox 0245a8cb93 Merge remote-tracking branch 'upstream/master' into epinio/resolve-conflicts-with-master 2023-06-23 18:00:14 +01:00
Giuseppe Leo 01eeb0548f
Add recommended lint rules globally (#8997)
* Update configuration

* Create default config for eslint

* Restore plugin:vue/recommended

* Add exceptions and overrides

* Correct manually remaining issues

* Adding further picked exceptions groupped up

* Fix or disable specific cases manually and singularly

* Add naming linting exception

* Remove unused variable in component

* Move rules to default

* Autocorrect rancher/components linting issues

* Configure VSCode to use multiple files, to display linting for rancher components

* Disable jest lint hook restriction for string list component

* Autofix
2023-06-23 17:02:55 +02:00
Richard Cox 1f68d5a825 Changes following review 2023-01-03 16:00:06 +00:00
Richard Cox 23ee18ef37 Add support for Epinio's Dex Auth provider
- Add mechanism for plugins to provide login components
- Add epinio login component
- Ensure builtin plugins are not removed on log out
2023-01-03 16:00:05 +00:00
Phillip Rak 3d410d0974 Apply linter auto-fixes
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
2022-11-16 18:38:20 -07:00
Neil MacDougall f18082c20f
Plugin tweaks (#7095)
* Minor improvements

* Various fixes

* Fix developer load of plugins with '-' character in name

* IImprove installation detecttion and extensions naming

* Fix one more string

* Update placeholder icon

* Change pref string to Extensions

* Change icon and error handlers

* Error handling

* Fix lint

* Limit description length

* Ensure info panel readme info scrolls vertically for content

* Fix lint

* Fix bug where plugins don't load on fresh login or a login after logout

* Add chart compatbility filtering

* PR feedback

* Add check for access to ui plugin schema

* Update string following PR feedback

* Fix GitHub auth

* Fix lint

* Write in default system registry when we are installing the operator

* Fix issue where stuck installing on upgrade/rollback

* Fix bugs and tidy up plugin install/uninstall feedback in UI

* Only use system registry for Rancher images

* One more tweak to fix status on upgrade operation

* Fix extensions page reloading plugins

* Add message to reload the browser

* Fix reload notice for uninstall

* Change way we set defautl system registry
2022-10-10 17:13:24 +01:00
Richard Cox 50aed3eb9e New Epinio pkg, and updates to dashboard (core, pkg process) (#5637)
* Doc

* v0.7.0

* v0.7.1

* v0.7.2

* Add creators

* v0.1.14

* v0.1.17

* Add Yarn link

* Tidy ups and typos

* Allow models to be loaded from plugins

* v0.1.15

* v0.1.18

* v0.6.6

* Improve readme, fix cyperss log msg

* v0.1.17

* v0.1.19

* v0.6.7

* v0.6.8

* Fix logo ref when in shell

* Fix lint issues

* Fix error in example

* Fix script to work on linux

* Add ability to revert moves without losing changes

* Fix bug with custom models in a plugin

* Fix build of UI packages

* Add dist-pkg to .eslintignore

* Pull out util from extend-router to prevent router being pulled in UI packages

* Update PLUGINS.md

* Remove duplicate dependency

* Reduce size of built UI packages

* Share codemirror. Other tidy ups

* Further improvements

* Tidy ups to support i18n in plugins

* Clen up add comments

* More clean-ups and comments added

* Rename from extension to plugin

* Missed file in rename

* v0.6.9

* TIdy ups following rename

* v0.1.20

* v0.1.21

* More refactor and tidy up

* v0.1.22

* v0.1.18

* v0.1.19

* v0.1.23

* v0.6.10

* Version Packages. Improve naming. Unload.

* v0.6.11

* v0.1.20

* v0.1.21

* v0.1.24

* v0.6.12

* v0.1.25

* v0.1.22

* v0.6.13

* Fix issues when plugin is builtin

* Add missing files

* Fix lint issues and watcher ignores

* Fixes following review

* v0.1.28

* v0.1.31

* v0.6.20

* Fix coer.js version

* Fix bug where plugins included via npm don't work

* Changes post merge

* Move plugins doc to dev guide, add note at top of README

* Update cypress version

* Add note about the reset --hard in rejig -d

* Fixes post merge

* Rename @ranch to @rancher and ad plugins

* Improve routes support, add package assets support

* Add uninstall hooks and pass interal opts

* Fix rejig script

* Minor fixes

* disable consent banner text overflow wrap

* add additional metadata to workload detail view

* minor css tweak

* Routing tweaks
- attempted to improve `addRoutes` typing, failed a lot
- improved typings in plugins.ts
- added "@pkg/*" entry and vue-shim (for importing components) to the pkg creator
- fixed some linting
- safely fail when Verdaccio isn't running
- fixed some typos

* Remove frontmatter-markdown-loader reference from nuxt-config

* Add annotation to stop upgrades for managed charts

Signed-off-by: Phillip Rak <rak.phillip@gmail.com>

* Use correct name for Network Attachment Definition Resource (#5579)

* Fix heading levels in Account and API keys page (#5563)

* SortableTable Performance: Optimise row mouse over/leave handlers (#5550)

Co-authored-by: Richard Cox <richard.cox@suse.com>

* Keep the check for fleet bundle ID

Signed-off-by: Phillip Rak <rak.phillip@gmail.com>

* Revert "Remove frontmatter-markdown-loader reference from nuxt-config"

This reverts commit 29ef6f2f7b.

* Exclude creators from dashboard build

* Revert "Exclude creators from dashboard build"

This reverts commit 8ede93ee7c.

* Ingore creators via tsconfig
- We're still susceptible with vue shims in multiple packages
- Need to determine why packages can't use shim from route
- Probably need to move `./vue-shim.d.ts` in to `./shell`. Needs testing with a pkg that imports a component

* warn on adding windows node to cutom cluster

* Display custom error message when login fails. (#5582)

* change rke2 upgradeStrategy to 1 concurrent controlplane and worker (#5580)

Co-authored-by: Alexandre Alves <aalves@AlexandresMBP2.lan>

* update endpoint display, fix ready status for daemonset type

* Fix Sortable Tble SSR (#5599)

* Sortable Table: Fix broken props to slot (#5600)

* expanded error check to include simple type

* fixed error check logic

* Fix async buton wobble with spinner (#5586)

* Add Pod restart count to workload detail page

* Can scale workload from workload detail page

* Enable source map in Nuxt/Webpack configuration for debugging (#5590)

* Move hardcoded values for roles in his own config file

* Allow to set default values also for Clusters and Namespaces

* Allow local cluster to be hidden

* Initialize always auth errors as empty list

* Add translation for snapshot group

Signed-off-by: Phillip Rak <rak.phillip@gmail.com>

* Enable s3 storage in rke2 cluster config

Signed-off-by: Phillip Rak <rak.phillip@gmail.com>

* Group by snapshot location

Signed-off-by: Phillip Rak <rak.phillip@gmail.com>

* After rejig

* Prevent injection of malformed errors in the generic resource form component

* New Epinio pkg, and updates to dashboard (core, pkg process)

* Remove epinio-select

* correct @shell// reference

* Fix filtering issue
- store/index suffered a bad merge

* Add hide-local-cluster to the settings page

* Fix node table column sorting (#5611)

* Fix issue where private registry auth can be changed in view mode (#5617)

* Change title of support block on home page when custom link set (#5547)

* Tidying up

* Add feedback to the copy kubeconfig header button (#5628)

* Add feedback to the copy kubeconfig header button

* Minor improvement

* Get rke3 and k3s latest versions from settings (#5608)

* Revert previous change and avoid watching spoofed types

* Move the group-by string to computed prop

Signed-off-by: Phillip Rak <rak.phillip@gmail.com>

* Use computed instead of method, use Array.isArray instead of lodash isArray

* Ensure auth provider note appears consistently within form instead of new floating button section
- some auth providers already had this
- possibly better ux to add to top, but that area is already busy

* Fix bug where delay loading only worked on scroll with live columns (#5635)

* Inconsistencies with Cluster metrics across the UI (#5542)

* fix num pods being displayed on the homepage cluster list + set mem to gib for ram on homepage cluster list

* show total number of nodes rather that useful nodes in cluster dashboard view + remove reserved info for CPU and MEM in cluster table in homepage + fix pods usage in nodes list view + clear console logs

* cleanup

* correctly wire PodsUsage as a formatter + display N/A when usage is zero in nodes list values for CPU, MEM, PODS

* add loader icon to PodsUsage formatter

* add string translation to n/a in percentageBar formatter

* add delayedLoading to PodsUsage formatter

Co-authored-by: Alexandre Alves <aalves@Alexandres-MacBook-Pro-2.local>
Co-authored-by: Alexandre Alves <aalves@AlexandresMBP2.lan>

* Enable filtering by project name on project/namespaces paeg (#5636)

* Fixes post merge

* Rename core-store to dashboard-store
- contains TODO: RCs to resolve

* Tidy up/imporve nav hooks

* Fix some todo's, epinio routing product

* refactor detailtop

* Hide NeuVector product if `cattle-neuvector-system` does not exist
- As per request at https://github.com/rancher/dashboard/issues/5556#issuecomment-1098270110
- fixes #5556
- alternative to #5604

* Fix a number of areas where the sticky footer consumes large amounts of space
- Fixes #5643
- Mostly caused by non-standard ways the CruResource was being used

Effected Areas / Places to test
Note - Only need to visit pages, shouldn't need to make any changes to resources
- Cluster create/import screens (types, credentials (create new / existing), import, rke2)
- Auth providers (shortest form is keycloak saml)
- Create/Edit resource types - project, namespace, some random others
- Create/Edit resource types that have sub-types (secrets, workloads, OPA Gateway / Constraints)

Also Addressed
- Only show top border of the footer if CruResource is in edit view
- Fixed hide of errors

* Fix conditional showing of Group `Assign To` and `Refresh` buttons

Buttons should only show if
- There is a non-local auth provider enabled
- The user has the correct permissions for the relevent action

Fixes #4897

* Fix live expiry badge used on api keys table

* Hide local cluster in LandingPagePreference and api key (token) list

* HARVESTER: Fix Grafana metrics reload failure

* Address some TODOs

* minor fixes

* Rename i18n to l10n, make use of default folders

* Improve adding multiple routes

* Config map view inconsistent for binary data (#5602)

* Fix Config map view inconsistent for binary data

Co-authored-by: Alexandre Alves <aalves@AlexandresMBP2.lan>
Co-authored-by: Alexandre Alves <aalves@Alexandres-MacBook-Pro-2.local>

* check for existance of limit prop so that deleting a project doesnt silently fail (#5661)

Co-authored-by: Alexandre Alves <aalves@AlexandresMBP2.lan>

* Changes following review

* Fix CruResource `Edit as Yaml` feature
- ensure sticky buttons are stuck at bottom
- doesn't apply sticky buttons to direct `Edit as Yaml` feature outside of CruResource

* Fix navigation & ns filter bugs
- nav from explorer to epinio cluster (errors in console)
- nav from epinio cluster to explorer (ns filter broken)

* Remove epinio ns and config validation
- this was the process that will be replaced with Sean's work
- it's suffered bit rot and was broken after the merge
  - not running in places
  - it visually broke the labelled select (in multiple places)

* remaining todos

* fixes following validation change

* fix bad yarn lock file

Co-authored-by: Neil MacDougall <nmacdougall@suse.com>
Co-authored-by: Neil MacDougall <nwmac@users.noreply.github.com>
Co-authored-by: Neill Somerville <neill.somerville@gmail.com>
Co-authored-by: Phillip Rak <rak.phillip@gmail.com>
Co-authored-by: Nancy Butler <42977925+mantis-toboggan-md@users.noreply.github.com>
Co-authored-by: Shavin Fonseka <Shavindra@users.noreply.github.com>
Co-authored-by: Alexandre Alves <97888974+aalves08@users.noreply.github.com>
Co-authored-by: Alexandre Alves <aalves@AlexandresMBP2.lan>
Co-authored-by: Catherine Luse <catherine.luse@gmail.com>
Co-authored-by: Giuseppe Leo <giuseppe.leo@suse.com>
Co-authored-by: cnotv <giuseppe.leo@suse.de>
Co-authored-by: Alexandre Alves <aalves@Alexandres-MacBook-Pro-2.local>
Co-authored-by: n313893254 <n313893254@126.com>
# Conflicts:
#	shell/assets/translations/en-us.yaml
#	shell/components/CruResource.vue
#	shell/components/ResourceDetail/Masthead.vue
#	shell/components/ResourceList/Masthead.vue
#	shell/components/SortableTable/index.vue
#	shell/components/form/KeyValue.vue
#	shell/components/form/LabeledInput.vue
#	shell/components/form/NameNsDescription.vue
#	shell/components/form/NotificationSettings.vue
#	shell/components/formatter/PodsUsage.vue
#	shell/components/nav/Header.vue
#	shell/config/product/neuvector.js
#	shell/detail/workload/index.vue
#	shell/edit/provisioning.cattle.io.cluster/CustomCommand.vue
#	shell/models/cluster.x-k8s.io.machinedeployment.js
#	shell/models/harvester/kubevirt.io.virtualmachineinstance.js
#	shell/models/workload.js
#	shell/pages/c/_cluster/settings/banners.vue
#	shell/plugins/steve/actions.js
#	shell/store/type-map.js
2022-05-10 10:04:04 +01:00
Richard Cox 25acc1f8eb Plugins: Rejig files to new shell locations (#5623)
* Doc

* v0.7.0

* v0.7.1

* v0.7.2

* Add creators

* v0.1.14

* v0.1.17

* Add Yarn link

* Tidy ups and typos

* Allow models to be loaded from plugins

* v0.1.15

* v0.1.18

* v0.6.6

* Improve readme, fix cyperss log msg

* v0.1.17

* v0.1.19

* v0.6.7

* v0.6.8

* Fix logo ref when in shell

* Fix lint issues

* Fix error in example

* Fix script to work on linux

* Add ability to revert moves without losing changes

* Fix bug with custom models in a plugin

* Fix build of UI packages

* Add dist-pkg to .eslintignore

* Pull out util from extend-router to prevent router being pulled in UI packages

* Update PLUGINS.md

* Remove duplicate dependency

* Reduce size of built UI packages

* Share codemirror. Other tidy ups

* Further improvements

* Tidy ups to support i18n in plugins

* Clen up add comments

* More clean-ups and comments added

* Rename from extension to plugin

* Missed file in rename

* v0.6.9

* TIdy ups following rename

* v0.1.20

* v0.1.21

* More refactor and tidy up

* v0.1.22

* v0.1.18

* v0.1.19

* v0.1.23

* v0.6.10

* Version Packages. Improve naming. Unload.

* v0.6.11

* v0.1.20

* v0.1.21

* v0.1.24

* v0.6.12

* v0.1.25

* v0.1.22

* v0.6.13

* Fix issues when plugin is builtin

* Add missing files

* Fix lint issues and watcher ignores

* Fixes following review

* v0.1.28

* v0.1.31

* v0.6.20

* Fix coer.js version

* Fix bug where plugins included via npm don't work

* Changes post merge

* Move plugins doc to dev guide, add note at top of README

* Update cypress version

* Add note about the reset --hard in rejig -d

* Fixes post merge

* Rename @ranch to @rancher and ad plugins

* Improve routes support, add package assets support

* Add uninstall hooks and pass interal opts

* Fix rejig script

* Minor fixes

* Routing tweaks
- attempted to improve `addRoutes` typing, failed a lot
- improved typings in plugins.ts
- added "@pkg/*" entry and vue-shim (for importing components) to the pkg creator
- fixed some linting
- safely fail when Verdaccio isn't running
- fixed some typos

* Remove frontmatter-markdown-loader reference from nuxt-config

* Revert "Remove frontmatter-markdown-loader reference from nuxt-config"

This reverts commit 29ef6f2f7b.

* Exclude creators from dashboard build

* Revert "Exclude creators from dashboard build"

This reverts commit 8ede93ee7c.

* Ingore creators via tsconfig
- We're still susceptible with vue shims in multiple packages
- Need to determine why packages can't use shim from route
- Probably need to move `./vue-shim.d.ts` in to `./shell`. Needs testing with a pkg that imports a component

* After rejig

Co-authored-by: Neil MacDougall <nmacdougall@suse.com>
Co-authored-by: Neil MacDougall <nwmac@users.noreply.github.com>
2022-05-10 10:04:02 +01:00