Path validation fix, webpack process polyfill, and v9 DataGrid column resize UX - #732
Merged
Merged
Conversation
…tion The validatePath regex was too restrictive, blocking dots and other special characters that are valid in IoT Hub device IDs per Azure documentation (- . % _ * ? ! ( ) , : = @ $ '). This caused 'Invalid path: contains disallowed characters' errors for device IDs like 'test.test2'. Path traversal (..) and double slashes (//) are still blocked. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…lidator.js Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Vincenzo Caruso (vincenzocaruso)
approved these changes
Jun 12, 2026
node-polyfill-webpack-plugin v4 no longer injects the process global by default, causing 'process is not defined' in the packaged Electron renderer. Move the ProvidePlugin from the dev-only config into the shared common config so it applies to production/Electron builds as well. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add resize handle styling, header dropdown menu (Resize Column dialog + keyboard resize), chevron indicator, and a horizontal scroll wrapper so the grid scrolls when the window is narrower than the columns' combined min widths. - ResizableDetailsList: className-based cell styling (avoids the v9 gotcha where consumer inline style clobbers the injected resize width), header Menu with Resize/keyboard-resize items, ChevronDownRegular indicator, and .rdl-scroll-container wrapper for horizontal overflow. - New resizeColumnDialog: v9 Dialog for exact-pixel width entry via columnSizing setColumnWidth. - New _resizableDetailsList.scss: header/cell classNames + scroll container. - Localization keys for keyboard resize. - Header cells use the visible column name as their accessible name (no static aria-label override). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Vincenzo Caruso (vincenzocaruso)
approved these changes
Jun 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR bundles several independent fixes and enhancements.
1. Path validation: allow valid IoT Hub device ID characters
The
validatePathregex was too restrictive, blocking dots and other special characters that are valid in IoT Hub device IDs per Azure documentation (- . % _ * ? ! ( ) , : = @ $ '). This caused "Invalid path: contains disallowed characters" errors for device IDs liketest.test2. Path traversal (..) and double slashes (//) are still blocked.2. Webpack: provide
processpolyfill in the common configMoved the
processProvidePluginfrom the dev-only webpack config into the sharedwebpack.common.tsso the production (electronfile://) bundle also has the polyfill. Fixes a "process is not defined" runtime error that only reproduced in the production build.3. Restore v8-style column resize UX in the v9 DataGrid wrapper
The app was migrated from Fluent UI v8 (
DetailsList) to v9 (DataGrid); the sharedResizableDetailsListlost the v8 resize experience. This restores it:className-based cell styling, fixing a v9 gotcha where consumer inlinestyleclobbered the column-sizing width thatDataGridHeaderCell/DataGridCellinject..rdl-scroll-container) so the grid shows a horizontal scrollbar when the window is narrower than the columns'' combined minimum widths — matching v8DetailsListbehavior.aria-labeloverride); the menu trigger still announcesaria-haspopup.4. Cleanup
Removed an accidentally committed generated file (
host/handlers/urlValidation).This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
Thank you for contributing to the Azure IoT Explorer!
This checklist is used to make sure that common guidelines for a pull request are followed.
General Guidelines
npm run testcommand)