History log of /openbmc/webui-vue/src/store/modules/ (Results 1 – 25 of 212)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
7a1c39be12-Jan-2026 Nikhil Ashoka <a.nikhil@ibm.com>

Fix boot source override handling

Add optional chaining to avoid errors when
BootSourceOverrideTarget is missing.

Change-Id: I176119ac115d92749722ed74aabd84ebd2dae384
Signed-off-by: Nikhil Ashoka <

Fix boot source override handling

Add optional chaining to avoid errors when
BootSourceOverrideTarget is missing.

Change-Id: I176119ac115d92749722ed74aabd84ebd2dae384
Signed-off-by: Nikhil Ashoka <a.nikhil@ibm.com>

show more ...

75b0203921-Dec-2025 Jason Westover <jwestover@nvidia.com>

Migrate Vuelidate from v1 to v2 API

Complete the migration from Vuelidate v1 (vuelidate 0.7.7) to v2
(@vuelidate/core 2.0.3 and @vuelidate/validators 2.0.4).

Changes include:
- Replace imports from

Migrate Vuelidate from v1 to v2 API

Complete the migration from Vuelidate v1 (vuelidate 0.7.7) to v2
(@vuelidate/core 2.0.3 and @vuelidate/validators 2.0.4).

Changes include:
- Replace imports from 'vuelidate/lib/validators' with
'@vuelidate/validators'
- Convert static 'validations:' objects to 'validations()' methods
which return the validation rules object
- Update helpers.regex() syntax from v1 two-arg format
helpers.regex('name', pattern) to v2 single-arg
helpers.regex(pattern)
- Create custom macAddress validator using regex since macAddress
is not included in @vuelidate/validators v2
- Remove deprecated vuelidate 0.7.7 package from dependencies
- Add unit tests for Vuelidate v2 migration verification
- Fix DateTime store to continue with DateTime update even if NTP
settings update fails
- Fix Network Table components (IPv4, IPv6, DNS) missing @ok event
handlers for Add modal dialogs
- Fix CSR country dropdown by restoring COUNTRY_LIST data and
moving useI18n() call to setup() function
- Fix disconnected modals in Network page by using eventBus to
communicate between child components and parent (hostname,
MAC address, default gateway edit buttons)

Tested:
- npm run build completes successfully
- npm run test:unit passes 66 new Vuelidate validation tests:
- VuelidateMixin.spec.js: getValidationState method tests
- TableDateFilter.spec.js: Date range validation tests
- ModalHostname.spec.js: Hostname validation tests
- ModalMacAddress.spec.js: MAC address validation tests
- ModalUser.spec.js: User form validation tests
- Manual testing performed:
- User Management: Create/edit user with password confirmation
- LDAP: Enable/disable with conditional field requirements
- Date/Time: Switch between NTP and manual modes
- Factory Reset: Confirm checkbox validation when server is on
- Network Settings: Add IPv4, IPv6, DNS addresses via modals
- Network Settings: Edit hostname, MAC address, default gateway
- Certificates: Generate CSR with country dropdown working

Change-Id: I0f6b5d89d1791b36977f1a3c16cbd10bca6a484a
Signed-off-by: Jason Westover <jwestover@nvidia.com>

show more ...


/openbmc/webui-vue/docs/customization/build.md
/openbmc/webui-vue/package-lock.json
/openbmc/webui-vue/package.json
/openbmc/webui-vue/src/components/Global/FormFile.vue
/openbmc/webui-vue/src/components/Global/LoadingBar.vue
/openbmc/webui-vue/src/components/Global/TableDateFilter.vue
/openbmc/webui-vue/src/store/api.js
Settings/DateTimeStore.js
/openbmc/webui-vue/src/utilities/NBDServer.js
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryServiceIndicator.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableSystem.vue
/openbmc/webui-vue/src/views/Logs/Dumps/DumpsModalConfirmation.vue
/openbmc/webui-vue/src/views/Operations/FactoryReset/FactoryResetModal.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareFormUpdate.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareModalUpdateFirmware.vue
/openbmc/webui-vue/src/views/Operations/ServerPowerOperations/BootSettings.vue
/openbmc/webui-vue/src/views/Operations/VirtualMedia/ModalConfigureConnection.vue
/openbmc/webui-vue/src/views/Overview/OverviewInventory.vue
/openbmc/webui-vue/src/views/ResourceManagement/Power.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/Certificates/CsrCountryCodes.js
/openbmc/webui-vue/src/views/SecurityAndAccess/Certificates/ModalGenerateCsr.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/Certificates/ModalUploadCertificate.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/Ldap/Ldap.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/Ldap/ModalAddRoleGroup.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/Policies/Policies.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/UserManagement/ModalSettings.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/UserManagement/ModalUser.vue
/openbmc/webui-vue/src/views/Settings/DateTime/DateTime.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalDefaultGateway.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalHostname.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalIpv6.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalMacAddress.vue
/openbmc/webui-vue/src/views/Settings/Network/Network.vue
/openbmc/webui-vue/src/views/Settings/Network/NetworkGlobalSettings.vue
/openbmc/webui-vue/src/views/Settings/Network/NetworkInterfaceSettings.vue
/openbmc/webui-vue/src/views/Settings/Network/TableDns.vue
/openbmc/webui-vue/src/views/Settings/Network/TableIpv4.vue
/openbmc/webui-vue/src/views/Settings/Network/TableIpv6.vue
/openbmc/webui-vue/src/views/Settings/SnmpAlerts/ModalAddDestination.vue
/openbmc/webui-vue/tests/unit/Global/TableDateFilter.spec.js
/openbmc/webui-vue/tests/unit/Mixins/VuelidateMixin.spec.js
/openbmc/webui-vue/tests/unit/testUtils.js
/openbmc/webui-vue/tests/unit/views/SecurityAndAccess/UserManagement/ModalUser.spec.js
/openbmc/webui-vue/tests/unit/views/Settings/Network/ModalHostname.spec.js
/openbmc/webui-vue/tests/unit/views/Settings/Network/ModalMacAddress.spec.js
/openbmc/webui-vue/vue.config.js
61bab8aa20-Nov-2025 Hariharan Rangasamy <hariharanr@ami.com>

Prevent error when EfficiencyRatings is undefined

Use optional chaining on the element access
and on the property access to prevent TypeError

Fixes: https://github.com/openbmc/webui-vue/issues/135

Prevent error when EfficiencyRatings is undefined

Use optional chaining on the element access
and on the property access to prevent TypeError

Fixes: https://github.com/openbmc/webui-vue/issues/135

Change-Id: Ic58d4ef086e5d0a43a44b6388b3d1d450c79d224
Signed-off-by: Hariharan Rangasamy <hariharanr@ami.com>

show more ...

7a2b464a19-Nov-2025 Jae Hyun Yoo <jae.yoo@oss.qualcomm.com>

Add forceUpdate option for uploadFirmwareMultipartHttpPush

Add the forceUpdate option for the uploadFirmwareMultipartHttpPush call
so that ForceUpdate can be set through it.

Change-Id: I4d1f326963e

Add forceUpdate option for uploadFirmwareMultipartHttpPush

Add the forceUpdate option for the uploadFirmwareMultipartHttpPush call
so that ForceUpdate can be set through it.

Change-Id: I4d1f326963e87f024037001c964ab72c90ccb8e1
Signed-off-by: Jae Hyun Yoo <jae.yoo@oss.qualcomm.com>

show more ...

cfbd678d28-Apr-2025 Jae Hyun Yoo <jae.yoo@oss.qualcomm.com>

Add applyTime option for uploadFirmwareMultipartHttpPush

Add the applyTime option for the uploadFirmwareMultipartHttpPush call
and set its default value to ‘Immediate’.

Change-Id: I7e9a442ef0bd4487

Add applyTime option for uploadFirmwareMultipartHttpPush

Add the applyTime option for the uploadFirmwareMultipartHttpPush call
and set its default value to ‘Immediate’.

Change-Id: I7e9a442ef0bd4487b67b921761b51b603a77d9ed
Signed-off-by: Jae Hyun Yoo <jae.yoo@oss.qualcomm.com>

show more ...

d36ac8a803-Nov-2025 jason westover <jwestover@nvidia.com>

Migrate to Bootstrap 5 and remove Vue compat plugin

Complete migration from Bootstrap 4 (bootstrap-vue) to Bootstrap 5
(bootstrap-vue-next) and remove the @vue/compat plugin to finalize
the Vue 3 mi

Migrate to Bootstrap 5 and remove Vue compat plugin

Complete migration from Bootstrap 4 (bootstrap-vue) to Bootstrap 5
(bootstrap-vue-next) and remove the @vue/compat plugin to finalize
the Vue 3 migration.

Bundle size impact:
- Before (Bootstrap 4 + bootstrap-vue): 535 KiB gzipped
- After (Bootstrap 5 + bootstrap-vue-next): 511 KiB gzipped
- Reduction: 24 KiB (4.5% smaller)

Package updates:
- Update bootstrap 4.6.2 -> 5.3.8
- Update bootstrap-vue 2.23.1 -> bootstrap-vue-next 0.40.8
- Remove @vue/compat plugin
- Update vue 3.4.29 -> 3.5.24 and related packages
- Add mitt 3.0.1 for global event bus
- Add vue-demi 0.14.10 for library compatibility

Bootstrap 5 CSS updates:
- Replace directional classes: ml/mr/pl/pr -> ms/me/ps/pe
- Replace text-left/right -> text-start/end
- Replace sr-only -> visually-hidden / visually-hidden-focusable
- Update media breakpoint xs -> sm (Bootstrap 5 removed xs)
- Update color functions: gray("700") -> $gray-700
- Add form-switch border-radius for curved toggles
- Update alert, table, toast, form, and button styles

Bootstrap-Vue-Next API changes:
- Use createBootstrap() for plugin registration
- Update modal footer slots: #modal-footer -> #footer
- Fix form select events: @change -> @update:model-value
- Add v-model bindings to modals instead of manual show()/hide()
- Update toast system with custom plugin wrapping useToast()
- Register components and directives explicitly

Vue 3 specific updates:
- Replace $root.$emit with mitt event bus (eventBus.js)
- Update render function from h(App) to createApp(App)
- Add emits option to components
- Use h() instead of $createElement in mixins
- Add Vue 3 compile-time feature flags with documentation
- Update event listeners: $on/$off to eventBus methods
- Add beforeUnmount cleanup for event listeners

New components and significant additions:
- src/plugins/toast.js - Custom toast plugin wrapping useToast() for
Options API compatibility
- src/components/Global/ConfirmModal.vue - Global confirmation dialog
shim to replace Bootstrap 4's removed bvModal.msgBoxConfirm
- src/eventBus.js - mitt-based event bus with Vue 2-compatible API
- Navigation state preservation on page refresh implemented

Critical fixes:
- Add global API interceptor to strip Vue reactivity from payloads
- Preserve binary data (File, Blob, FormData) in API requests
- Fix Generate CSR modal v-model binding for proper open/close
- Remove debug logging and fix jest configuration
- Fix responsive text visibility in AppHeader
- Update BVTableSelectableMixin for proper row selection
- Fix BVToastMixin VNode rendering for Vue 3

Vue 3 modal fixes (lazy-loaded components):
- Add v-model support to network modals (ModalIpv4, ModalIpv6, ModalDns,
ModalHostname, ModalMacAddress, ModalDefaultGateway) by adding
modelValue prop, watcher on modelValue that triggers show(), and
update:modelValue emit in resetForm
- Remove lazy loading from TableIpv4, TableIpv6, TableDns to ensure
modal component refs are available when v-model triggers
- Fix modal title accessibility by adding title prop to modals
(ModalAddDestination, ModalUser, ModalAddRoleGroup, etc.)

i18n fixes (computed properties):
- Fix computed properties using i18n translations in ModalAddRoleGroup,
ModalUser, and ModalUploadCertificate
- Move useI18n() call from data() to setup() and return i18n object
- Use i18n.t() instead of $t in computed properties and templates
- Prevents "this.$t is not a function" and "_ctx.$t is not a function"
errors in Vue 3

Toast notification fixes:
- Fix toast progress bar visibility by setting progressProps to
undefined (documented way to opt-out) instead of false
- Change modelValue prop to interval for auto-dismiss timing
- Remove temporary CSS display:none hack from _toasts.scss

Network settings fixes:
- Fix checkbox @change event sending Vue reactive proxy object instead
of boolean by casting with !! operator in changeDomainNameState and
related methods in NetworkGlobalSettings.vue
- Ensures API receives plain boolean values in PATCH requests

Navigation fixes:
- Fix nav-link styling for navigation items without children by
replacing b-nav-item with router-link in AppNavigation.vue
- Prevents blue font color from .nav-link CSS class

Configuration updates:
- Remove vue-compat webpack configuration
- Add Vue 3 feature flags (__VUE_OPTIONS_API__, etc.)
- Add .cursor to .gitignore

Accessibility improvements:
- Add autocomplete attributes to password and credential inputs
- Add modal title props for screen reader support

Build completes successfully and UI behavior matches pre-migration.

Extracted features (to be submitted in follow-up PRs):
The following features were removed from this migration PR to keep it
focused on the Bootstrap 5 upgrade. They will be submitted separately:
1. UnresponsiveModal - Server connectivity watchdog with auto-retry
2. Auth token persistence - sessionStorage support for X-Auth-Token
3. Hardware store error handling - try/catch, dynamic discovery
4. Login page connecting indicator - Backend polling with spinner
5. Test updates - Jest setup and snapshot updates for
Bootstrap-Vue-Next
6. Documentation updates - Vue 3 and Vue I18n v9+ API documentation
7. Enhanced ConfirmModal - Feature-rich confirmation dialog with
custom actions

Change-Id: Ib76a58f324b3c926cf536e6e4626e4271639de38
Signed-off-by: Jason Westover <jwestover@nvidia.com>

show more ...


/openbmc/webui-vue/.gitignore
/openbmc/webui-vue/package-lock.json
/openbmc/webui-vue/package.json
/openbmc/webui-vue/public/index.html
/openbmc/webui-vue/src/App.vue
/openbmc/webui-vue/src/assets/styles/_obmc-custom.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_alert.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_badge.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_base.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_bootstrap-grid.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_buttons.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_dropdown.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_forms.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_modal.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_pagination.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_section-divider.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_tables.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_toasts.scss
/openbmc/webui-vue/src/assets/styles/bmc/helpers/_colors.scss
/openbmc/webui-vue/src/assets/styles/bmc/helpers/_functions.scss
/openbmc/webui-vue/src/assets/styles/bootstrap/_index.scss
/openbmc/webui-vue/src/components/AppHeader/AppHeader.vue
/openbmc/webui-vue/src/components/AppNavigation/AppNavigation.vue
/openbmc/webui-vue/src/components/Global/Alert.vue
/openbmc/webui-vue/src/components/Global/ButtonBackToTop.vue
/openbmc/webui-vue/src/components/Global/ConfirmModal.vue
/openbmc/webui-vue/src/components/Global/FormFile.vue
/openbmc/webui-vue/src/components/Global/InfoTooltip.vue
/openbmc/webui-vue/src/components/Global/InputPasswordToggle.vue
/openbmc/webui-vue/src/components/Global/LoadingBar.vue
/openbmc/webui-vue/src/components/Global/PageContainer.vue
/openbmc/webui-vue/src/components/Global/Search.vue
/openbmc/webui-vue/src/components/Global/StatusIcon.vue
/openbmc/webui-vue/src/components/Global/TableDateFilter.vue
/openbmc/webui-vue/src/components/Global/TableFilter.vue
/openbmc/webui-vue/src/components/Global/TableRowAction.vue
/openbmc/webui-vue/src/components/Global/TableToolbar.vue
/openbmc/webui-vue/src/components/Mixins/BVPaginationMixin.js
/openbmc/webui-vue/src/components/Mixins/BVTableSelectableMixin.js
/openbmc/webui-vue/src/components/Mixins/BVToastMixin.js
/openbmc/webui-vue/src/components/Mixins/LoadingBarMixin.js
/openbmc/webui-vue/src/components/Mixins/TableRowExpandMixin.js
/openbmc/webui-vue/src/components/Mixins/VuelidateMixin.js
/openbmc/webui-vue/src/eventBus.js
/openbmc/webui-vue/src/layouts/AppLayout.vue
/openbmc/webui-vue/src/layouts/LoginLayout.vue
/openbmc/webui-vue/src/locales/en-US.json
/openbmc/webui-vue/src/locales/ka-GE.json
/openbmc/webui-vue/src/locales/ru-RU.json
/openbmc/webui-vue/src/main.js
/openbmc/webui-vue/src/plugins/toast.js
/openbmc/webui-vue/src/store/index.js
GlobalStore.js
Operations/BootSettingsStore.js
ResourceManagement/PowerControlStore.js
SecurityAndAccess/LdapStore.js
Settings/NetworkStore.js
/openbmc/webui-vue/src/utilities/NBDServer.js
/openbmc/webui-vue/src/views/ChangePassword/ChangePassword.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/Inventory.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryServiceIndicator.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableAssembly.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableBmcManager.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableChassis.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableDimmSlot.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableFans.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTablePowerSupplies.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableProcessors.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableSystem.vue
/openbmc/webui-vue/src/views/HardwareStatus/Sensors/Sensors.vue
/openbmc/webui-vue/src/views/Login/Login.vue
/openbmc/webui-vue/src/views/Logs/Dumps/Dumps.vue
/openbmc/webui-vue/src/views/Logs/Dumps/DumpsForm.vue
/openbmc/webui-vue/src/views/Logs/Dumps/DumpsModalConfirmation.vue
/openbmc/webui-vue/src/views/Logs/EventLogs/EventLogs.vue
/openbmc/webui-vue/src/views/Logs/PostCodeLogs/PostCodeLogs.vue
/openbmc/webui-vue/src/views/Operations/FactoryReset/FactoryReset.vue
/openbmc/webui-vue/src/views/Operations/FactoryReset/FactoryResetModal.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareCardsBios.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareCardsBmc.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareFormUpdate.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareModalSwitchToRunning.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareModalUpdateFirmware.vue
/openbmc/webui-vue/src/views/Operations/KeyClear/KeyClear.vue
/openbmc/webui-vue/src/views/Operations/Kvm/KvmConsole.vue
/openbmc/webui-vue/src/views/Operations/RebootBmc/RebootBmc.vue
/openbmc/webui-vue/src/views/Operations/SerialOverLan/SerialOverLanConsole.vue
/openbmc/webui-vue/src/views/Operations/ServerPowerOperations/BootSettings.vue
/openbmc/webui-vue/src/views/Operations/ServerPowerOperations/ServerPowerOperations.vue
/openbmc/webui-vue/src/views/Operations/VirtualMedia/ModalConfigureConnection.vue
/openbmc/webui-vue/src/views/Operations/VirtualMedia/VirtualMedia.vue
/openbmc/webui-vue/src/views/Overview/Overview.vue
/openbmc/webui-vue/src/views/Overview/OverviewCard.vue
/openbmc/webui-vue/src/views/Overview/OverviewDumps.vue
/openbmc/webui-vue/src/views/Overview/OverviewEvents.vue
/openbmc/webui-vue/src/views/Overview/OverviewFirmware.vue
/openbmc/webui-vue/src/views/Overview/OverviewInventory.vue
/openbmc/webui-vue/src/views/Overview/OverviewNetwork.vue
/openbmc/webui-vue/src/views/Overview/OverviewPower.vue
/openbmc/webui-vue/src/views/Overview/OverviewQuickLinks.vue
/openbmc/webui-vue/src/views/Overview/OverviewServer.vue
/openbmc/webui-vue/src/views/ProfileSettings/ProfileSettings.vue
/openbmc/webui-vue/src/views/ResourceManagement/Power.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/Certificates/Certificates.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/Certificates/ModalGenerateCsr.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/Certificates/ModalUploadCertificate.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/Ldap/Ldap.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/Ldap/ModalAddRoleGroup.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/Ldap/TableRoleGroups.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/Policies/Policies.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/Sessions/Sessions.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/UserManagement/ModalSettings.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/UserManagement/ModalUser.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/UserManagement/TableRoles.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/UserManagement/UserManagement.vue
/openbmc/webui-vue/src/views/Settings/DateTime/DateTime.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalDefaultGateway.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalDns.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalHostname.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalIpv4.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalIpv6.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalMacAddress.vue
/openbmc/webui-vue/src/views/Settings/Network/Network.vue
/openbmc/webui-vue/src/views/Settings/Network/NetworkGlobalSettings.vue
/openbmc/webui-vue/src/views/Settings/Network/NetworkInterfaceSettings.vue
/openbmc/webui-vue/src/views/Settings/Network/TableDns.vue
/openbmc/webui-vue/src/views/Settings/Network/TableIpv4.vue
/openbmc/webui-vue/src/views/Settings/Network/TableIpv6.vue
/openbmc/webui-vue/src/views/Settings/SnmpAlerts/ModalAddDestination.vue
/openbmc/webui-vue/src/views/Settings/SnmpAlerts/SnmpAlerts.vue
/openbmc/webui-vue/vue.config.js
99fe228e20-Aug-2025 Aravinth S <aravinths@ami.com>

Add privilege check to power operation button

Disables power operation buttons for users with
"Read-only" privileges. This change ensures that only "Operator" and
administrative users can perform po

Add privilege check to power operation button

Disables power operation buttons for users with
"Read-only" privileges. This change ensures that only "Operator" and
administrative users can perform power operations, preventing
unauthorized actions and enhancing system security.

Change-Id: I515ede092cef3c82a110d9534d9f8d3d6afc3135
Signed-off-by: Aravinth S <aravinths@ami.com>

show more ...

7d65f08b07-May-2024 Nikhil Ashoka <a.nikhil@ibm.com>

Improved performance in Sensors page

- The Sensors page takes too long to load, It is because we are
trying to call the redfish endpoint: /Sensors' Members one by one
and setting in the GUI. The

Improved performance in Sensors page

- The Sensors page takes too long to load, It is because we are
trying to call the redfish endpoint: /Sensors' Members one by one
and setting in the GUI. The change made is that we are using the
query parameters' expand option to call only once and get all
the required responses.

- We are using query parameters only for those which have MaxLevels>0,
else calling the APIs one by one.

- Tested: Checked on a p10 system. For 306 records, it used to take
1 minute 20 seconds, now takes 7 seconds to load.

Signed-off-by: Nikhil Ashoka <a.nikhil@ibm.com>
Change-Id: Ife3447e48d4f5617dcf4563ceac486e4502b2de1

show more ...


/openbmc/webui-vue/CONTRIBUTING.md
/openbmc/webui-vue/OWNERS
/openbmc/webui-vue/docs/customization/build.md
/openbmc/webui-vue/docs/guide/components/buttons/index.md
/openbmc/webui-vue/docs/guide/components/file-upload/readme.md
/openbmc/webui-vue/docs/guide/components/page-title/index.md
/openbmc/webui-vue/docs/guide/components/table/index.md
/openbmc/webui-vue/docs/guide/components/toasts/index.md
/openbmc/webui-vue/docs/guide/guidelines/colors.md
/openbmc/webui-vue/docs/guide/guidelines/motion.md
/openbmc/webui-vue/docs/guide/unit-testing/readme.md
/openbmc/webui-vue/src/App.vue
/openbmc/webui-vue/src/assets/styles/bmc/custom/_buttons.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_dropdown.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_tables.scss
/openbmc/webui-vue/src/components/AppHeader/AppHeader.vue
/openbmc/webui-vue/src/components/AppNavigation/AppNavigation.vue
/openbmc/webui-vue/src/components/AppNavigation/AppNavigationMixin.js
/openbmc/webui-vue/src/components/Global/ButtonBackToTop.vue
/openbmc/webui-vue/src/components/Global/FormFile.vue
/openbmc/webui-vue/src/components/Global/InfoTooltip.vue
/openbmc/webui-vue/src/components/Global/InputPasswordToggle.vue
/openbmc/webui-vue/src/components/Global/LoadingBar.vue
/openbmc/webui-vue/src/components/Global/PageContainer.vue
/openbmc/webui-vue/src/components/Global/PageSection.vue
/openbmc/webui-vue/src/components/Global/PageTitle.vue
/openbmc/webui-vue/src/components/Global/Search.vue
/openbmc/webui-vue/src/components/Global/StatusIcon.vue
/openbmc/webui-vue/src/components/Global/TableFilter.vue
/openbmc/webui-vue/src/components/Global/TableToolbar.vue
/openbmc/webui-vue/src/env/router/ibm.js
/openbmc/webui-vue/src/env/router/intel.js
/openbmc/webui-vue/src/i18n.js
/openbmc/webui-vue/src/layouts/AppLayout.vue
/openbmc/webui-vue/src/layouts/LoginLayout.vue
/openbmc/webui-vue/src/locales/ka-GE.json
/openbmc/webui-vue/src/locales/ru-RU.json
/openbmc/webui-vue/src/main.js
/openbmc/webui-vue/src/router/routes.js
HardwareStatus/SensorsStore.js
/openbmc/webui-vue/src/views/ChangePassword/ChangePassword.vue
/openbmc/webui-vue/src/views/Login/Login.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareCardsBios.vue
/openbmc/webui-vue/src/views/Operations/Kvm/KvmConsole.vue
/openbmc/webui-vue/src/views/Operations/RebootBmc/RebootBmc.vue
/openbmc/webui-vue/src/views/Operations/SerialOverLan/SerialOverLanConsole.vue
/openbmc/webui-vue/src/views/Operations/ServerPowerOperations/ServerPowerOperations.vue
/openbmc/webui-vue/src/views/Overview/OverviewCard.vue
/openbmc/webui-vue/src/views/Overview/OverviewEvents.vue
/openbmc/webui-vue/src/views/Overview/OverviewQuickLinks.vue
/openbmc/webui-vue/src/views/ProfileSettings/ProfileSettings.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/Policies/Policies.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/UserManagement/UserManagement.vue
/openbmc/webui-vue/tests/unit/Global/__snapshots__/InputPasswordToggle.spec.js.snap
/openbmc/webui-vue/vue.config.js
85b2d31512-Nov-2024 Shane Lin <hslin@nvidia.com>

Rename host firmware to bios firmware

Problem:
- Host firmware naming was inconsistent with actual functionality

Changes:
- Rename hostFirmware to biosFirmware in store
- Update component names and

Rename host firmware to bios firmware

Problem:
- Host firmware naming was inconsistent with actual functionality

Changes:
- Rename hostFirmware to biosFirmware in store
- Update component names and references
- Modify i18n translation keys

Tested:
- Verified store mutations/actions
- Confirmed component rendering
- Checked i18n translations
- npx eslint without error related to 'host'

Change-Id: Ib97e4682f649d4a52f65e69df50422d84f23e916
Signed-off-by: Shane Lin <hslin@nvidia.com>

show more ...

223fe5b517-Jan-2025 Tan Siewert <tan@siewert.io>

inventory: move serial console to system

SerialConsole was deprecated in Manager v1_10_0 and has been
removed in bmcweb [1].

Because the SerialConsole values were not available anymore, the
Manager

inventory: move serial console to system

SerialConsole was deprecated in Manager v1_10_0 and has been
removed in bmcweb [1].

Because the SerialConsole values were not available anymore, the
Managers were not displayed because "setBmcInfo" couldn't find the
"SerialConsole" properties. THe following error will be logged:

```
TypeError: Cannot read properties of undefined (reading 'ConnectTypesSupported')
at Wa.setBmcInfo (app.25e72670.js:58:745295)
at app.25e72670.js:50:2774
at app.25e72670.js:50:10113
at Array.forEach (<anonymous>)
at app.25e72670.js:50:10092
at Wa._withCommit (app.25e72670.js:50:11953)
at Wa.commit (app.25e72670.js:50:10066)
at Wa.commit (app.25e72670.js:50:9518)
at o.commit (app.25e72670.js:50:2216)
at app.25e72670.js:58:745747
```

[1]: https://github.com/openbmc/bmcweb/commit/fa800c8a141aa4b209269e0fb50cae34aa24f75d

Tested: BMC manager being listed in the inventory and serial console
variables being displayed for the system.

Change-Id: I1a24178717805ca50eef2c89042c0bd9ede1d5bc
Signed-off-by: Tan Siewert <tan@siewert.io>

show more ...

ce7db82c05-Jul-2024 Paul Fertser <fercerpav@gmail.com>

Retrieve role information the Redfish standard way

Currently webui-vue has a hardcoded list of pages and sidebar menu items
restricted to a specific Redfish role (from a predefined default set).
To

Retrieve role information the Redfish standard way

Currently webui-vue has a hardcoded list of pages and sidebar menu items
restricted to a specific Redfish role (from a predefined default set).
To disallow navigating to restricted pages and to hide disallowed menu
items the application needs to know the roles assigned to the session.

bmcweb only implements a single role identity per session so the Roles
array returned within a Session object always has just one element.

This patch changes the mechanism used to retrieve the current role from
buggy direct query to AccountService (which can only return information
about BMC local users) to extracting it from standard Redfish Session
object.

In case the role is not available (e.g. when backend implementation
predates #Session.v1_7_0.Session) the application assumes Administrator
role which is meant as a best effort to continue working given the
circumstances. This doesn't pose a security risk because all validation
is always performed by the backend itself, so the worst that can happen
is end user getting error messages trying to access something without
enough privileges.

Tested: logging in and out of accounts with different roles without
reloading the page, observing the list of queries made, the role
variable assignments and presence of the menu items depending on
account, navigating to different pages. Also tested reloading the page
and confirmed the correct role was retrieved without going through login
again. Also tested deleting and mangling localStorage variable
sessionURI prior to doing page reload, in those cases redirect to login
page was observed.

Change-Id: I8b6c84060a987489cc1d35c46c1b00618a88b607
Signed-off-by: Paul Fertser <fercerpav@gmail.com>

show more ...

825059ac04-Oct-2024 Surya Venkatesan <suryav@ami.com>

i18n fix after vue3 merge to master

Fix i18n issue in the Power restore policy, Inventory LEDs, and User
management page.

After merge the vue3 code to master the i18n Power restore policy,
Inventor

i18n fix after vue3 merge to master

Fix i18n issue in the Power restore policy, Inventory LEDs, and User
management page.

After merge the vue3 code to master the i18n Power restore policy,
Inventory LEDs, and User management page got conflicts and old code
retrieved in master. So unable to render the Power restore policy,
Inventory LEDs and unable to disable the user in user management page

change the i18n.t method to i18n.global.t for the vue3 support.

Change-Id: I46f3f56632308ceaee321dd896e16e922d964b60
Signed-off-by: Surya Venkatesan <suryav@ami.com>

show more ...

1a814b9f23-Sep-2024 Surya Venkatesan <suryav@ami.com>

LDAP and server power operation page fix

In LDAP loading declare outside the form, form validation condition
change, server power operation page validation added and i18n method
changed in the event

LDAP and server power operation page fix

In LDAP loading declare outside the form, form validation condition
change, server power operation page validation added and i18n method
changed in the event log store.

Change-Id: I903b4dec7da1a5a2cc8441c65693c57201405d70
Signed-off-by: Surya Venkatesan <suryav@ami.com>

show more ...

4626aec419-Sep-2024 Surya Venkatesan <suryav@ami.com>

Network page validation and i18n issue fix

In network page invalid if condition changed, added validations and i18n
function changed based on the vue 3 support.

Change-Id: If5b9c00f6da722984f1c568c

Network page validation and i18n issue fix

In network page invalid if condition changed, added validations and i18n
function changed based on the vue 3 support.

Change-Id: If5b9c00f6da722984f1c568cfbcb6b34537c3df1
Signed-off-by: Surya Venkatesan <suryav@ami.com>

show more ...

de23ea2311-Jul-2024 Surya V <suryav@ami.com>

Vuelidate, I18n, and filter are upgraded to vue3

While navigating to the pages i18n, vuelidate, and filters errors
occurred. i18n, and vuelidate code changes in each page adapted to
vue3. Filter glo

Vuelidate, I18n, and filter are upgraded to vue3

While navigating to the pages i18n, vuelidate, and filters errors
occurred. i18n, and vuelidate code changes in each page adapted to
vue3. Filter global function for date and time format implemented
in the main.js file and those files which as called the filter
functions.

Change-Id: If1a2ee22d47750faef1c35ef2c263299067d9a20
Signed-off-by: Surya Venkatesan <suryav@ami.com>

show more ...


/openbmc/webui-vue/.eslintrc.js
/openbmc/webui-vue/babel.config.js
/openbmc/webui-vue/package-lock.json
/openbmc/webui-vue/package.json
/openbmc/webui-vue/postcss.config.js
/openbmc/webui-vue/src/App.vue
/openbmc/webui-vue/src/assets/styles/bmc/custom/_buttons.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_dropdown.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_tables.scss
/openbmc/webui-vue/src/components/AppHeader/AppHeader.vue
/openbmc/webui-vue/src/components/AppNavigation/AppNavigation.vue
/openbmc/webui-vue/src/components/AppNavigation/AppNavigationMixin.js
/openbmc/webui-vue/src/components/Global/ButtonBackToTop.vue
/openbmc/webui-vue/src/components/Global/FormFile.vue
/openbmc/webui-vue/src/components/Global/InfoTooltip.vue
/openbmc/webui-vue/src/components/Global/InputPasswordToggle.vue
/openbmc/webui-vue/src/components/Global/LoadingBar.vue
/openbmc/webui-vue/src/components/Global/PageContainer.vue
/openbmc/webui-vue/src/components/Global/PageSection.vue
/openbmc/webui-vue/src/components/Global/PageTitle.vue
/openbmc/webui-vue/src/components/Global/Search.vue
/openbmc/webui-vue/src/components/Global/StatusIcon.vue
/openbmc/webui-vue/src/components/Global/TableCellCount.vue
/openbmc/webui-vue/src/components/Global/TableDateFilter.vue
/openbmc/webui-vue/src/components/Global/TableFilter.vue
/openbmc/webui-vue/src/components/Global/TableRowAction.vue
/openbmc/webui-vue/src/components/Global/TableToolbar.vue
/openbmc/webui-vue/src/components/Global/TableToolbarExport.vue
/openbmc/webui-vue/src/components/Mixins/BVPaginationMixin.js
/openbmc/webui-vue/src/components/Mixins/BVToastMixin.js
/openbmc/webui-vue/src/components/Mixins/LocalTimezoneLabelMixin.js
/openbmc/webui-vue/src/components/Mixins/TableRowExpandMixin.js
/openbmc/webui-vue/src/env/assets/styles/_default.scss
/openbmc/webui-vue/src/env/components/AppNavigation/ibm.js
/openbmc/webui-vue/src/env/components/AppNavigation/intel.js
/openbmc/webui-vue/src/eventBus.js
/openbmc/webui-vue/src/i18n.js
/openbmc/webui-vue/src/layouts/AppLayout.vue
/openbmc/webui-vue/src/layouts/LoginLayout.vue
/openbmc/webui-vue/src/main.js
/openbmc/webui-vue/src/router/index.js
/openbmc/webui-vue/src/router/routes.js
/openbmc/webui-vue/src/store/api.js
/openbmc/webui-vue/src/store/index.js
GlobalStore.js
HardwareStatus/AssemblyStore.js
HardwareStatus/BmcStore.js
HardwareStatus/ChassisStore.js
HardwareStatus/MemoryStore.js
HardwareStatus/ProcessorStore.js
HardwareStatus/ServerLedStore.js
HardwareStatus/SystemStore.js
Logs/DumpsStore.js
Logs/EventLogStore.js
Logs/PostCodeLogsStore.js
Operations/BootSettingsStore.js
Operations/ControlStore.js
Operations/FactoryResetStore.js
Operations/FirmwareStore.js
Operations/KeyClearStore.js
Operations/VirtualMediaStore.js
ResourceManagement/PowerControlStore.js
SecurityAndAccess/CertificatesStore.js
SecurityAndAccess/LdapStore.js
SecurityAndAccess/PoliciesStore.js
SecurityAndAccess/SessionsStore.js
SecurityAndAccess/UserManagementStore.js
Settings/DateTimeStore.js
Settings/NetworkStore.js
Settings/PowerPolicyStore.js
Settings/SnmpAlertsStore.js
/openbmc/webui-vue/src/views/ChangePassword/ChangePassword.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/Inventory.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryServiceIndicator.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableAssembly.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableBmcManager.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableChassis.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableDimmSlot.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableFans.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTablePowerSupplies.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableProcessors.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableSystem.vue
/openbmc/webui-vue/src/views/HardwareStatus/Sensors/Sensors.vue
/openbmc/webui-vue/src/views/Login/Login.vue
/openbmc/webui-vue/src/views/Logs/Dumps/Dumps.vue
/openbmc/webui-vue/src/views/Logs/Dumps/DumpsForm.vue
/openbmc/webui-vue/src/views/Logs/Dumps/DumpsModalConfirmation.vue
/openbmc/webui-vue/src/views/Logs/EventLogs/EventLogs.vue
/openbmc/webui-vue/src/views/Logs/PostCodeLogs/PostCodeLogs.vue
/openbmc/webui-vue/src/views/Operations/FactoryReset/FactoryReset.vue
/openbmc/webui-vue/src/views/Operations/FactoryReset/FactoryResetModal.vue
/openbmc/webui-vue/src/views/Operations/Firmware/Firmware.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareAlertServerPower.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareCardsBmc.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareCardsHost.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareFormUpdate.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareModalSwitchToRunning.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareModalUpdateFirmware.vue
/openbmc/webui-vue/src/views/Operations/KeyClear/KeyClear.vue
/openbmc/webui-vue/src/views/Operations/Kvm/KvmConsole.vue
/openbmc/webui-vue/src/views/Operations/RebootBmc/RebootBmc.vue
/openbmc/webui-vue/src/views/Operations/SerialOverLan/SerialOverLan.vue
/openbmc/webui-vue/src/views/Operations/SerialOverLan/SerialOverLanConsole.vue
/openbmc/webui-vue/src/views/Operations/ServerPowerOperations/BootSettings.vue
/openbmc/webui-vue/src/views/Operations/ServerPowerOperations/ServerPowerOperations.vue
/openbmc/webui-vue/src/views/Operations/VirtualMedia/ModalConfigureConnection.vue
/openbmc/webui-vue/src/views/Operations/VirtualMedia/VirtualMedia.vue
/openbmc/webui-vue/src/views/Overview/Overview.vue
/openbmc/webui-vue/src/views/Overview/OverviewCard.vue
/openbmc/webui-vue/src/views/Overview/OverviewDumps.vue
/openbmc/webui-vue/src/views/Overview/OverviewEvents.vue
/openbmc/webui-vue/src/views/Overview/OverviewFirmware.vue
/openbmc/webui-vue/src/views/Overview/OverviewInventory.vue
/openbmc/webui-vue/src/views/Overview/OverviewNetwork.vue
/openbmc/webui-vue/src/views/Overview/OverviewPower.vue
/openbmc/webui-vue/src/views/Overview/OverviewQuickLinks.vue
/openbmc/webui-vue/src/views/Overview/OverviewServer.vue
/openbmc/webui-vue/src/views/PageNotFound/PageNotFound.vue
/openbmc/webui-vue/src/views/ProfileSettings/ProfileSettings.vue
/openbmc/webui-vue/src/views/ResourceManagement/Power.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/Certificates/Certificates.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/Certificates/CsrCountryCodes.js
/openbmc/webui-vue/src/views/SecurityAndAccess/Certificates/ModalGenerateCsr.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/Certificates/ModalUploadCertificate.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/Ldap/Ldap.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/Ldap/ModalAddRoleGroup.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/Ldap/TableRoleGroups.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/Policies/Policies.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/Sessions/Sessions.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/UserManagement/ModalSettings.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/UserManagement/ModalUser.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/UserManagement/TableRoles.vue
/openbmc/webui-vue/src/views/SecurityAndAccess/UserManagement/UserManagement.vue
/openbmc/webui-vue/src/views/Settings/DateTime/DateTime.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalDns.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalHostname.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalIpv4.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalMacAddress.vue
/openbmc/webui-vue/src/views/Settings/Network/Network.vue
/openbmc/webui-vue/src/views/Settings/Network/NetworkGlobalSettings.vue
/openbmc/webui-vue/src/views/Settings/Network/NetworkInterfaceSettings.vue
/openbmc/webui-vue/src/views/Settings/Network/TableDns.vue
/openbmc/webui-vue/src/views/Settings/Network/TableIpv4.vue
/openbmc/webui-vue/src/views/Settings/PowerRestorePolicy/PowerRestorePolicy.vue
/openbmc/webui-vue/src/views/Settings/SnmpAlerts/ModalAddDestination.vue
/openbmc/webui-vue/src/views/Settings/SnmpAlerts/SnmpAlerts.vue
/openbmc/webui-vue/tests/unit/AppHeader.spec.js
/openbmc/webui-vue/tests/unit/AppNavigation.spec.js
/openbmc/webui-vue/tests/unit/Global/InfoTooltip.spec.js
/openbmc/webui-vue/tests/unit/Global/InputPasswordToggle.spec.js
/openbmc/webui-vue/tests/unit/Global/LoadingBar.spec.js
/openbmc/webui-vue/tests/unit/Global/PageContainer.spec.js
/openbmc/webui-vue/tests/unit/Global/PageSection.spec.js
/openbmc/webui-vue/tests/unit/Global/PageTitle.spec.js
/openbmc/webui-vue/tests/unit/Global/Search.spec.js
/openbmc/webui-vue/tests/unit/Global/StatusIcon.spec.js
/openbmc/webui-vue/tests/unit/Global/TableCellCount.spec.js
/openbmc/webui-vue/tests/unit/Global/TableToolbar.spec.js
/openbmc/webui-vue/tests/unit/Global/__snapshots__/PageSection.spec.js.snap
/openbmc/webui-vue/vue.config.js
4130397530-Sep-2024 Nikhil Ashoka <a.nikhil@ibm.com>

Updated Power restore policy URI

- Previously, we used to get the values for power restore policy page
from“JsonSchemas/ComputerSystem/ComputerSystem.json”. Now we have
removed the hardcoded API

Updated Power restore policy URI

- Previously, we used to get the values for power restore policy page
from“JsonSchemas/ComputerSystem/ComputerSystem.json”. Now we have
removed the hardcoded API call and are fetching the values from
the JsonSchemas/ComputerSystem’s URI because we would have versioned
ComputerSystem.json in the redfish response.

Change-Id: I1a25cbbb3dfc536485a6f71a359ae32c6eadf5f7
Signed-off-by: Nikhil Ashoka <a.nikhil@ibm.com>

show more ...

51feb35327-Sep-2024 Sean Zhang <xiazhang@nvidia.com>

Fix event entry download

Event entry should be downloaded with specific http header of "Accept:
application/octet-stream" or "*/*", but the default http header is set
to "Accept: application/json",

Fix event entry download

Event entry should be downloaded with specific http header of "Accept:
application/octet-stream" or "*/*", but the default http header is set
to "Accept: application/json", so need to specify the header for event
downloading.

Refer: https://gerrit.openbmc.org/c/openbmc/bmcweb/+/40136

Tested:
Event entry data can be downloaded with the fix.

Change-Id: Ia45123340da79a54fc4229470e6822206b8df808
Signed-off-by: Sean Zhang <xiazhang@nvidia.com>

show more ...

ccf5c5c812-Sep-2024 jason westover <jwestover@nvidia.com>

Add default Target to MultipartHttpPush

When no targets are provided, webui will now default to the BMC:
i.e. "/redfish/v1/Managers/bmc"

The current version of bmcweb requires the Targets parameter

Add default Target to MultipartHttpPush

When no targets are provided, webui will now default to the BMC:
i.e. "/redfish/v1/Managers/bmc"

The current version of bmcweb requires the Targets parameter.
bmcweb will be updated for multipart to match the behavior of
simpleupdate:
if Targets is empty or missing, default to the BMC.

Also, the fwupdate page will be updated soon to allow the
selection of Targets from the FirmwareInventory list.

This should be a temp webui fix until we are comfortable with
the upcoming changes to bmcweb.

Change-Id: I630dcb40068b98aad8e1d276d17fe9af4793e788
Signed-off-by: jason westover <jwestover@nvidia.com>

show more ...

e2c716a928-Jul-2024 Leo Xu <yongquanx@nvidia.com>

Add support for MultipartHttpPushUri in fw push

According to the Redfish Firmware Update Whitepaper [1]
due to the vendor-specific details of this operation,
HttpPushUri has been deprecated in f

Add support for MultipartHttpPushUri in fw push

According to the Redfish Firmware Update Whitepaper [1]
due to the vendor-specific details of this operation,
HttpPushUri has been deprecated in favor of multipartHTTP push
updates.

Availability of update methods is determined from the UpdateService
response.

If MultipartHttpPushUri is found it will be preferred over HttpPushUri

Tested:
-Firmware update by performed via MultipartHttpPushUri

[1]: https://www.dmtf.org/sites/default/files/standards/documents/DSP2062_1.0.1.pdf

Change-Id: I184a889514d5f9f9598f35b2281404335bc0bc82
Signed-off-by: Leo Xu <yongquanx@nvidia.com>

show more ...

09a3b9e003-Jul-2024 Paul Fertser <fercerpav@gmail.com>

Use auth token when not communicating with bmcweb

Redfish backends other than OpenBMC bmcweb expect clients to
authenticate using X-Auth-Token HTTP header as that's the only standard
authentication

Use auth token when not communicating with bmcweb

Redfish backends other than OpenBMC bmcweb expect clients to
authenticate using X-Auth-Token HTTP header as that's the only standard
authentication method for Redfish sessions.

This code falls back to using the token in case Session creation didn't
result in obtaining an XSRF cookie (as should normally happen with
bmcweb).

Limitations: all WebSocket-based functionality can not work (JS-based
NBD Virtual Media, IP KVM, SOL), page reload drops the session and
requires to log in again.

Tested: logging in, observing Overview and successfully logging out of
an AMI MegaRAC BMC. Logging in and navigating around a bmcweb-running
system which doesn't have the code to provide cookies for Session POST
request (everything works as usual sans WS-based features).

Change-Id: I81dc881193440d8d252dcd283b99915bd08c0c5e
Signed-off-by: Paul Fertser <fercerpav@gmail.com>

show more ...

6de0341405-Jul-2024 Paul Fertser <fercerpav@gmail.com>

Handle expired passwords Redfish standard way

A password can expire at any moment during session lifetime and bmcweb
starts returning 403 Forbidden errors to the requests made after that.
The respon

Handle expired passwords Redfish standard way

A password can expire at any moment during session lifetime and bmcweb
starts returning 403 Forbidden errors to the requests made after that.
The response contains clear indication of the condition in the standard
`@Message.ExtendedInfo` attribute which is an array of Message objects.

Previously the code was trying to detect this condition by querying
AccountService after logging in but this approach doesn't work when
password expires mid-session. Also it was limited to BMC-managed
accounts and used hardcoded account URIs in violation of Redfish spec.

This patch adds to the interceptor of 403 error so that the user is
automatically redirected to the password change page as soon as the
condition is detected.

The same message is also present in the session creation POST response
201 if the password expired before the log in attempt, in this case the
session is created as usual but the user is automatically redirected to
password change page before any further requests are made.

Tested: logging in, navigating, logging out with non-expired password.
Logging in, navigating, then running `passwd -e <accountname>` via ssh
leads to functional password change page on the next request and then
navigating proceeds normally, and logging out too. If password is
expired before logging in the user gets redirected to the password
change page automatically after logging in.

Fixes: https://github.com/openbmc/webui-vue/issues/118
Change-Id: I03f5ee2526a4bb1d35d3bbea1142fea077d6bfed
Signed-off-by: Paul Fertser <fercerpav@gmail.com>

show more ...

582e954e05-Jul-2024 Sean Zhang <xiazhang@nvidia.com>

Fix single event entry download

For event entry download, the href not work since the event entry
download only work with header of "Accept: application/octet-stream" or
the default "*/*", change to

Fix single event entry download

For event entry download, the href not work since the event entry
download only work with header of "Accept: application/octet-stream" or
the default "*/*", change to click function to make it work.

Refer: https://gerrit.openbmc.org/c/openbmc/bmcweb/+/40136

Change-Id: I11051e913bfd71ef081bed93ffcbeeb1edd8c730
Signed-off-by: Sean Zhang <xiazhang@nvidia.com>

show more ...

1ff8e89f10-Jun-2024 Paul Fertser <fercerpav@gmail.com>

Switch to standard Redfish auth endpoint

To be able to talk to a Redfish-compliant implementation webui should
switch from old non-standard login and logout endpoints to creating a
Session via an ap

Switch to standard Redfish auth endpoint

To be able to talk to a Redfish-compliant implementation webui should
switch from old non-standard login and logout endpoints to creating a
Session via an appropriate POST request and to DELETE it on logout. This
also gives us standard Session object with all the relevant parameters
which allows the frontend to know what session it's using, what
permissions it has etc.

This works against bmcweb which checks for the presence of
webui-vue-specific "X-Requested-With" header in the request and provides
cookies in addition to the Redfish authentication token in the header.

Tested: logging in, logging out, navigating the pages, reloading the
page doesn't require logging in (if the session isn't expired),
WebSocket connections work.

Change-Id: I9d6159850b109a658b8f980637653e7e4576058b
Signed-off-by: Paul Fertser <fercerpav@gmail.com>

show more ...

bc49e09111-Jun-2024 Nikhil Ashoka <a.nikhil@ibm.com>

Removed TFTP code update option

- Removed TFTP server firmware update ability in the UI.

Signed-off-by: Nikhil Ashoka <a.nikhil@ibm.com>
Change-Id: Icbeddc7a3faa262f12e85268206ae70850f37905

08039ab726-Jun-2024 Sean Zhang <xiazhang@nvidia.com>

fix reboot BMC error message

Remove getLastBmcRebootTime after post BMC reboot action since BMC
connection will be lost after reboot. The last BMC reboot time will be
got after reboot BMC page loadi

fix reboot BMC error message

Remove getLastBmcRebootTime after post BMC reboot action since BMC
connection will be lost after reboot. The last BMC reboot time will be
got after reboot BMC page loading, and after BMC reboot, user need
reload the WEB UI, so there is also no need to send Redfish request to
get the last BMC reboot time just after the post the BMC reboot action.

Change-Id: Ic5d0cbca23a61610cc387a4046b85e9c20c255ea
Signed-off-by: Sean Zhang <xiazhang@nvidia.com>

show more ...

123456789