mirror of
https://github.com/unraid/api.git
synced 2026-01-05 16:09:49 -06:00
71a5214a0336ec43da0e32f373778b1a77a2a01d
2250 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
71a5214a03 |
Merge 2cb6eaeb12 into 4e945f5f56
4.17.0-build-number-99
|
||
|
|
2cb6eaeb12 |
refactor: enhance clipboard functionality and UI responsiveness in HeaderOsVersion component
- Integrated clipboard support check to ensure OS and API version copying only occurs when supported. - Updated button states to reflect clipboard capability, improving user experience. - Adjusted icon styles for better visual consistency and responsiveness in the component layout. |
||
|
|
4e945f5f56 |
feat(api): enhance OIDC redirect URI handling in service and tests (#1618)
- Updated `getRedirectUri` method in `OidcAuthService` to handle various edge cases for redirect URIs, including full URIs, malformed URLs, and default ports. - Added comprehensive tests for `OidcAuthService` to validate redirect URI construction and error handling. - Modified `RestController` to utilize `redirect_uri` query parameter for authorization requests. - Updated frontend components to include `redirect_uri` in authorization URLs, ensuring correct handling of different protocols and ports. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Stronger OIDC redirect_uri validation and an admin GraphQL endpoint to view full OIDC configuration. * OIDC Debug Logs UI (panel, button, modal), enhanced log viewer with presets/filters, ANSI-colored rendering, and a File Viewer component. * New GraphQL queries to list and fetch config files; API Config Download page. * **Refactor** * Centralized, modular OIDC flows and safer redirect handling; topic-based log subscriptions with a watcher manager for scalable live logs. * **Documentation** * Cache TTL guidance clarified to use milliseconds. * **Chores** * Added ansi_up and escape-html deps; improved log formatting; added root codegen script. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> |
||
|
|
b1590ee609 |
refactor: improve button click handling and class management in components
- Updated button click handlers in Notifications and RClone components to pass parameters directly, enhancing clarity and functionality. - Introduced a computed property for button classes in UserProfile component, streamlining class management based on item properties. - Refactored navigation logic in UpdateOs component for better readability and maintainability. |
||
|
|
51ebe77d09 |
refactor: update component structure and improve tooltip content
- Removed unnecessary margin from the ConnectSettings component for cleaner layout. - Enhanced the Sidebar component's tooltip to include a more descriptive label for editing notification settings, improving user clarity. |
||
|
|
e719780ee8 |
refactor: enhance component styles and introduce responsive modal
- Updated CSS variables and utility classes for improved theme integration and style consistency across components. - Introduced a new responsive modal component to enhance user experience on various screen sizes. - Refined button and badge styles to ensure better visual hierarchy and interaction feedback. - Adjusted component imports and structure for better modularity and maintainability. - Removed deprecated styles and streamlined CSS for improved performance and clarity. |
||
|
|
67a6a2e7c8 |
refactor: enhance CSS variable management and layer structure for improved theme integration
- Introduced overrides for Tailwind v4 global styles to utilize webgui variables, ensuring better compatibility and theming. - Scoped border colors and other styles to specific components, preventing unintended style leakage. - Updated layer definitions in main.css to prioritize webgui styles effectively, enhancing overall style management. - Added new Tailwind v4 color variables for utility classes in the theme store, improving customization options. |
||
|
|
3faa637d97 |
refactor: streamline CSS patching and layer management for improved style isolation
- Simplified the CSS patching function to wrap styles in a single `@layer`, enhancing control over cascade order and ensuring Tailwind styles can override as needed. - Removed the previous exclusion selectors logic, focusing on a more efficient layer-based approach to prevent style conflicts with webgui elements. - Updated the Nuxt configuration to eliminate the postcssPrefixPlugin, reflecting the shift towards layer management for CSS class handling. - Enhanced the main.css file to define layer order explicitly, ensuring that webgui styles are overridden by Tailwind utilities effectively. |
||
|
|
83107a743c |
feat: implement CSS class prefixing and exclusion logic for improved style management
- Introduced a new Vite plugin to prefix CSS classes, ensuring that styles from the webgui do not interfere with our components. - Enhanced the CSS patching script to apply exclusion selectors, preventing style leakage from `.unapi` containers. - Updated the Nuxt configuration to integrate the new postcssPrefixPlugin, allowing for better control over CSS class names. - Modified the Vue app mounting logic to add the `.unapi` class for improved style isolation and backward compatibility with `.unraid-reset`. |
||
|
|
aa9648105f |
refactor: update CSS patching for improved compatibility and specificity
- Modified the CSS patching script to enhance compatibility by updating echo statements and adjusting the patching logic. - Removed unnecessary layer wrapping in the CSS content, simplifying the structure while maintaining style specificity. - Updated comments for clarity on the purpose of the compatibility patch and its impact on CSS management. |
||
|
|
fdacc21d0e |
refactor: improve CSS layer management for better style precedence
- Updated the CSS layer definitions in both the plugin and main.css to ensure a clear hierarchy, preventing style conflicts and enhancing specificity. - Revised comments to clarify the intended layer order and its impact on style application, ensuring better maintainability and understanding of the CSS structure. |
||
|
|
7ec4874680 |
refactor: enhance CSS backup and restoration logic in deployment script
- Added functionality to restore existing CSS backups before creating new ones, ensuring a clean state during deployment. - Updated comments for clarity on the backup process and the creation of the backup directory. - Improved the handling of CSS imports in `main.css` to prevent global resets and enhance style specificity. |
||
|
|
771dcef4f7 |
fix: update PHP path in plugin and enhance deployment script for web components
- Changed the PHP executable path in the plugin from `/bin/php` to `/usr/bin/php` for better compatibility. - Improved the `deploy-dev.sh` script by ensuring proper quoting in the rsync command and adding a check to create the remote directory for standalone apps, enhancing deployment reliability. |
||
|
|
2594df7e9c |
refactor: enhance CSS layering and specificity for improved style management
- Updated the CSS patching script to wrap styles in a new `@layer` structure, ensuring better isolation and priority management for webgui and unraid-api styles. - Refined the `.unraid-reset` class in `main.css` to utilize CSS layers, enhancing specificity and preventing style conflicts with webgui elements. - Improved the handling of CSS content during patching to ensure all styles are correctly wrapped and prioritized. |
||
|
|
9dcd05748e |
refactor: enhance CSS patching and restoration logic in deployment script
- Added a new installation script to patch webgui CSS files, ensuring that styles for specific elements are wrapped with `:not(.unraid-reset)` to prevent style leakage. - Implemented a backup and restoration mechanism for original CSS files, allowing for easy recovery after patching. - Improved the handling of CSS directories and added warnings for missing directories to enhance robustness during deployment. |
||
|
|
3cd5c0e8fd |
refactor: improve CSS reset strategy and deployment script logic
- Refined the `.unraid-reset` class in `main.css` to create a CSS layer for resets, enhancing style isolation and preventing leakage from webgui styles. - Updated the deployment script `deploy-dev.sh` to improve checks for the existence of web components and standalone apps, ensuring accurate deployment and error handling. |
||
|
|
c60f7b7204 |
refactor: enhance CSS isolation and z-index management for modals
- Updated the `.unraid-reset` class to apply isolation to non-modal components, preventing style leakage. - Added z-index rules to ensure modals and their backdrops appear above all other content, improving UI layering. - Refined button styles within the `.unraid-reset` class to reset inherited properties for better consistency. |
||
|
|
ce67257526 |
refactor: enhance CSS reset and improve Vue app mounting logic
- Updated the `.unraid-reset` class in `main.css` to include additional properties for better styling consistency across Unraid components. - Refined the `autoMountComponent` function in `vue-mount-app.ts` to check for element existence before mounting, improving robustness and preventing errors during the mounting process. |
||
|
|
4a39cd9862 |
refactor: enhance manifest validation and Vue app mounting logic
- Improved validation in `WebComponentsExtractor` to log errors for missing standalone apps entries and file keys, ensuring better error handling during manifest processing. - Updated CSS content retrieval in `vite.standalone.config.ts` to include a fallback mechanism for missing Nuxt CSS files, enhancing robustness. - Simplified modal component mounting in `standalone-mount.ts` by utilizing a dedicated function for better readability and maintainability. - Refined `mountVueApp` logic in `vue-mount-app.ts` to differentiate between the main app and clones, optimizing the mounting process for multiple targets. |
||
|
|
f7ad582436 |
refactor: streamline standalone app deployment and manifest generation
- Removed redundant modal div from `test-standalone.html`, simplifying the structure for Vue component mounting. - Added a check in `add-timestamp-standalone-manifest.js` to ensure the existence of the standalone apps directory before manifest generation, improving error handling. - Updated `deploy-dev.sh` to enhance the rsync command for standalone apps, ensuring proper synchronization and cleanup of old files during deployment. |
||
|
|
7c59c03786 |
refactor: improve standalone app manifest handling and Vue app mounting
- Updated `WebComponentsExtractor` to iterate over all manifest files, ensuring valid standalone apps entries are processed and preventing duplicate script loading. - Enhanced `mountVueApp` to manage multiple clones and their respective shadow-root containers, improving cleanup and organization of mounted Vue apps. - Modified deployment script to capture exit codes from standalone app synchronization, ensuring accurate error reporting during deployment. |
||
|
|
eeed20215f |
feat: add prop parsing from HTML attributes in Vue app mounting
- Introduced a helper function `parsePropsFromElement` to extract props from HTML attributes, enhancing the flexibility of prop handling. - Updated `mountVueApp` to utilize parsed props for both the main app and additional targets, allowing for dynamic prop assignment based on the HTML structure. - Improved overall integration of props with Vue components, ensuring a more seamless mounting process. |
||
|
|
41f11b0f8d |
refactor: enhance CSS content retrieval in Vite config
- Updated the CSS content retrieval logic in `vite.standalone.config.ts` to dynamically find and read entry CSS files from specified directories, improving flexibility and maintainability. - Removed hardcoded CSS file paths in favor of a directory-based approach, allowing for easier updates and better organization of CSS assets. |
||
|
|
32bc79b93d |
fix: update CSS validation patterns for Tailwind classes
- Enhanced regex patterns in `validate-custom-elements-css.js` to accommodate minified CSS formats, ensuring accurate detection of Tailwind utility classes and other CSS properties. - Adjusted patterns for flex, margin, padding, color, background utilities, CSS custom properties, and responsive breakpoints to support both spaced and non-spaced formats. |
||
|
|
b9632b9774 |
style: add unraid-reset class and CSS rules for component styling
- Introduced a new CSS class `.unraid-reset` to reset inherited styles for Unraid components, ensuring consistent styling across the application. - Updated `vue-mount-app.ts` to apply the `.unraid-reset` class to mount targets, preventing webgui styles from leaking into Unraid components. |
||
|
|
a1d91a0b4d |
fix: update artifact path and manifest validation logic
- Changed the artifact path in the GitHub Actions workflow to point to the new standalone apps directory. - Enhanced the manifest file validation to include support for standalone.manifest.json, allowing for more flexible manifest file requirements. |
||
|
|
85b250eb80 | feat: mount vue apps, not web components | ||
|
|
6356f9c41d |
chore: lint unraid ui (#1638)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - New Features - Fullscreen dialogs now use dedicated open/close animations for smoother transitions. - UX - Added a “Loading Notifications...” message while notifications are being fetched. - Style - Standardized Tailwind utility class ordering across numerous components for consistent styling; no functional or visual changes expected. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
a1ee915ca5 |
fix(cli): support --log-level for start and restart cmds (#1623)
Resolve #1614 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Start and Restart commands accept a validated --log-level option (now includes "fatal"); chosen level is applied to the running/restarted service and defaults to the LOG_LEVEL environment value when set. * **Documentation** * CLI docs updated to list the --log-level option and allowed levels (including fatal), show LOG_LEVEL as an environment-variable alternative, and include usage examples. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
c147a6b507 |
fix: api key creation cli (#1637)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - New Features - CLI now prompts for roles/permissions only when not provided. - Bug Fixes - Existing API keys are detected by name during overwrite checks. - Invalid role inputs are filtered out with clear warnings. - Refactor - Centralized role parsing/validation with improved error messages. - CLI create flow prompts only when minimum info is missing and uses a sensible default description. - Tests - Added comprehensive unit tests for role parsing and CLI flows (create, retrieve, overwrite). - Chores - Updated API configuration version to 4.17.0. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
9d42b36f74 |
fix: confusing server -> status query (#1635)
represent the target server's status instead of whether it's connected to Mothership. Resolves #1627 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - Bug Fixes - Ensures the local server is handled consistently as a single server across views; list views show it as a single-item list when applicable. - Server status now reliably displays as Online for the local server. - Documentation - Added a clearer description for the server status field in the API schema to improve tooltips and autogenerated docs. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
26a95af953 |
fix: use unraid css variables in sonner (#1634)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - Style - Unified toast colors with theme variables for consistent light/dark theming. - Refined close button colors, borders, and hover state for improved contrast and clarity. - Updated loading bar color to better align with muted text tones. - Visual-only updates; no behavioral changes. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
0ead267838 |
chore(main): release 4.17.0 (#1631)
🤖 I have created a release *beep* *boop* --- ## [4.17.0](https://github.com/unraid/api/compare/v4.16.0...v4.17.0) (2025-08-27) ### Features * add tailwind class sort plugin ([#1562](https://github.com/unraid/api/issues/1562)) ([v4.17.0 |
||
|
|
163763f9e5 |
chore(deps): pin dependency prettier-plugin-tailwindcss to 0.6.14 (#1632)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [prettier-plugin-tailwindcss](https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss) | devDependencies | pin | [`^0.6.14` -> `0.6.14`](https://renovatebot.com/diffs/npm/prettier-plugin-tailwindcss/0.6.14/0.6.14) | Add the preset `:preserveSemverRanges` to your config if you don't want to pin your dependencies. --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/unraid/api). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi43IiwidXBkYXRlZEluVmVyIjoiNDEuODIuNyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
6469d002b7 |
fix: cleanup obsoleted legacy api keys on api startup (cli / connect) (#1630)
- these keys have been replaced with a session based authorization system |
||
|
|
ab11e7ff7f |
feat: add tailwind class sort plugin (#1562)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Updated code formatting tools to include support for Tailwind CSS-specific formatting. * Adjusted code formatting issue reporting from errors to warnings for a smoother development experience. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: mdatelle <mike@datelle.net> Co-authored-by: Eli Bosley <ekbosley@gmail.com> |
||
|
|
7316dc753f |
fix(deps): update all non-major dependencies (#1580)
This PR contains the following updates: | Package | Change | Age | Confidence | Type | Update | |---|---|---|---|---|---| | [@apollo/client](https://www.apollographql.com/docs/react/) ([source](https://redirect.github.com/apollographql/apollo-client)) | [`3.13.9` -> `3.14.0`](https://renovatebot.com/diffs/npm/@apollo%2fclient/3.13.9/3.14.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@apollo/client](https://www.apollographql.com/docs/react/) ([source](https://redirect.github.com/apollographql/apollo-client)) | [`3.13.9` -> `3.14.0`](https://renovatebot.com/diffs/npm/@apollo%2fclient/3.13.9/3.14.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | peerDependencies | minor | | [@apollo/client](https://www.apollographql.com/docs/react/) ([source](https://redirect.github.com/apollographql/apollo-client)) | [`3.13.9` -> `3.14.0`](https://renovatebot.com/diffs/npm/@apollo%2fclient/3.13.9/3.14.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@eslint/js](https://eslint.org) ([source](https://redirect.github.com/eslint/eslint/tree/HEAD/packages/js)) | [`9.33.0` -> `9.34.0`](https://renovatebot.com/diffs/npm/@eslint%2fjs/9.33.0/9.34.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@floating-ui/dom](https://floating-ui.com) ([source](https://redirect.github.com/floating-ui/floating-ui/tree/HEAD/packages/dom)) | [`1.7.3` -> `1.7.4`](https://renovatebot.com/diffs/npm/@floating-ui%2fdom/1.7.3/1.7.4) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@floating-ui/vue](https://floating-ui.com/docs/vue) ([source](https://redirect.github.com/floating-ui/floating-ui/tree/HEAD/packages/vue)) | [`1.1.8` -> `1.1.9`](https://renovatebot.com/diffs/npm/@floating-ui%2fvue/1.1.8/1.1.9) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@ianvs/prettier-plugin-sort-imports](https://redirect.github.com/ianvs/prettier-plugin-sort-imports) | [`4.6.1` -> `4.6.3`](https://renovatebot.com/diffs/npm/@ianvs%2fprettier-plugin-sort-imports/4.6.1/4.6.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@internationalized/number](https://redirect.github.com/adobe/react-spectrum) | [`3.6.4` -> `3.6.5`](https://renovatebot.com/diffs/npm/@internationalized%2fnumber/3.6.4/3.6.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@nestjs/testing](https://nestjs.com) ([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/testing)) | [`11.1.5` -> `11.1.6`](https://renovatebot.com/diffs/npm/@nestjs%2ftesting/11.1.5/11.1.6) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@nuxt/devtools](https://devtools.nuxt.com) ([source](https://redirect.github.com/nuxt/devtools/tree/HEAD/packages/devtools)) | [`2.6.2` -> `2.6.3`](https://renovatebot.com/diffs/npm/@nuxt%2fdevtools/2.6.2/2.6.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@nuxt/eslint](https://redirect.github.com/nuxt/eslint) ([source](https://redirect.github.com/nuxt/eslint/tree/HEAD/packages/module)) | [`1.8.0` -> `1.9.0`](https://renovatebot.com/diffs/npm/@nuxt%2feslint/1.8.0/1.9.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@nuxt/ui](https://ui.nuxt.com) ([source](https://redirect.github.com/nuxt/ui)) | [`3.3.0` -> `3.3.2`](https://renovatebot.com/diffs/npm/@nuxt%2fui/3.3.0/3.3.2) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@rollup/rollup-linux-x64-gnu](https://rollupjs.org/) ([source](https://redirect.github.com/rollup/rollup)) | [`4.46.2` -> `4.49.0`](https://renovatebot.com/diffs/npm/@rollup%2frollup-linux-x64-gnu/4.46.2/4.49.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | optionalDependencies | minor | | [@storybook/addon-docs](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/docs) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/docs)) | [`9.1.2` -> `9.1.3`](https://renovatebot.com/diffs/npm/@storybook%2faddon-docs/9.1.2/9.1.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@storybook/addon-links](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/links) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/links)) | [`9.1.2` -> `9.1.3`](https://renovatebot.com/diffs/npm/@storybook%2faddon-links/9.1.2/9.1.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@storybook/builder-vite](https://redirect.github.com/storybookjs/storybook/tree/next/code/builders/builder-vite/#readme) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/builders/builder-vite)) | [`9.1.2` -> `9.1.3`](https://renovatebot.com/diffs/npm/@storybook%2fbuilder-vite/9.1.2/9.1.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@storybook/vue3-vite](https://redirect.github.com/storybookjs/storybook/tree/next/code/frameworks/vue3-vite) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/frameworks/vue3-vite)) | [`9.1.2` -> `9.1.3`](https://renovatebot.com/diffs/npm/@storybook%2fvue3-vite/9.1.2/9.1.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@swc/core](https://swc.rs) ([source](https://redirect.github.com/swc-project/swc)) | [`1.13.3` -> `1.13.5`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.13.3/1.13.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@tailwindcss/cli](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli)) | [`4.1.11` -> `4.1.12`](https://renovatebot.com/diffs/npm/@tailwindcss%2fcli/4.1.11/4.1.12) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@tailwindcss/vite](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite)) | [`4.1.11` -> `4.1.12`](https://renovatebot.com/diffs/npm/@tailwindcss%2fvite/4.1.11/4.1.12) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@types/bun](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/bun) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/bun)) | [`1.2.20` -> `1.2.21`](https://renovatebot.com/diffs/npm/@types%2fbun/1.2.20/1.2.21) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@types/dockerode](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/dockerode) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/dockerode)) | [`3.3.42` -> `3.3.43`](https://renovatebot.com/diffs/npm/@types%2fdockerode/3.3.42/3.3.43) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`22.17.1` -> `22.18.0`](https://renovatebot.com/diffs/npm/@types%2fnode/22.17.1/22.18.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@types/wtfnode](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/wtfnode) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/wtfnode)) | [`0.7.3` -> `0.10.0`](https://renovatebot.com/diffs/npm/@types%2fwtfnode/0.7.3/0.10.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin)) | [`8.39.1` -> `8.41.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/8.39.1/8.41.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@vue/tsconfig](https://redirect.github.com/vuejs/tsconfig) | [`0.7.0` -> `0.8.1`](https://renovatebot.com/diffs/npm/@vue%2ftsconfig/0.7.0/0.8.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@vueuse/components](https://redirect.github.com/vueuse/vueuse/tree/main/packages/components#readme) ([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/components)) | [`13.6.0` -> `13.8.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcomponents/13.6.0/13.8.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@vueuse/core](https://redirect.github.com/vueuse/vueuse) ([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/core)) | [`13.6.0` -> `13.8.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcore/13.6.0/13.8.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@vueuse/core](https://redirect.github.com/vueuse/vueuse) ([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/core)) | [`13.6.0` -> `13.8.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcore/13.6.0/13.8.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@vueuse/integrations](https://redirect.github.com/vueuse/vueuse/tree/main/packages/integrations#readme) ([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/integrations)) | [`13.6.0` -> `13.8.0`](https://renovatebot.com/diffs/npm/@vueuse%2fintegrations/13.6.0/13.8.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@vueuse/nuxt](https://redirect.github.com/vueuse/vueuse/tree/main/packages/nuxt#readme) ([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/nuxt)) | [`13.6.0` -> `13.8.0`](https://renovatebot.com/diffs/npm/@vueuse%2fnuxt/13.6.0/13.8.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [cache-manager](https://redirect.github.com/jaredwray/cacheable) ([source](https://redirect.github.com/jaredwray/cacheable/tree/HEAD/packages/cache-manager)) | [`7.1.1` -> `7.2.0`](https://renovatebot.com/diffs/npm/cache-manager/7.1.1/7.2.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [chalk](https://redirect.github.com/chalk/chalk) | [`5.5.0` -> `5.6.0`](https://renovatebot.com/diffs/npm/chalk/5.5.0/5.6.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [concurrently](https://redirect.github.com/open-cli-tools/concurrently) | [`9.2.0` -> `9.2.1`](https://renovatebot.com/diffs/npm/concurrently/9.2.0/9.2.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [dayjs](https://day.js.org) ([source](https://redirect.github.com/iamkun/dayjs)) | [`1.11.13` -> `1.11.14`](https://renovatebot.com/diffs/npm/dayjs/1.11.13/1.11.14) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [eslint](https://eslint.org) ([source](https://redirect.github.com/eslint/eslint)) | [`9.33.0` -> `9.34.0`](https://renovatebot.com/diffs/npm/eslint/9.33.0/9.34.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [eslint-plugin-storybook](https://redirect.github.com/storybookjs/storybook/code/lib/eslint-plugin#readme) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/lib/eslint-plugin)) | [`9.1.2` -> `9.1.3`](https://renovatebot.com/diffs/npm/eslint-plugin-storybook/9.1.2/9.1.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [inquirer](https://redirect.github.com/SBoudrias/Inquirer.js/blob/main/packages/inquirer/README.md) ([source](https://redirect.github.com/SBoudrias/Inquirer.js)) | [`12.9.1` -> `12.9.4`](https://renovatebot.com/diffs/npm/inquirer/12.9.1/12.9.4) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [jose](https://redirect.github.com/panva/jose) | [`6.0.12` -> `6.0.13`](https://renovatebot.com/diffs/npm/jose/6.0.12/6.0.13) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | peerDependencies | patch | | [jose](https://redirect.github.com/panva/jose) | [`6.0.12` -> `6.0.13`](https://renovatebot.com/diffs/npm/jose/6.0.12/6.0.13) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [jose](https://redirect.github.com/panva/jose) | [`6.0.12` -> `6.0.13`](https://renovatebot.com/diffs/npm/jose/6.0.12/6.0.13) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [lucide-vue-next](https://lucide.dev) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-vue-next)) | [`0.539.0` -> `0.542.0`](https://renovatebot.com/diffs/npm/lucide-vue-next/0.539.0/0.542.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [marked](https://marked.js.org) ([source](https://redirect.github.com/markedjs/marked)) | [`16.1.2` -> `16.2.1`](https://renovatebot.com/diffs/npm/marked/16.1.2/16.2.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [nest-commander](https://nest-commander.jaymcdoniel.dev) ([source](https://redirect.github.com/jmcdo29/nest-commander/tree/HEAD/pacakges/nest-commander)) | [`3.18.0` -> `3.19.0`](https://renovatebot.com/diffs/npm/nest-commander/3.18.0/3.19.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [openid-client](https://redirect.github.com/panva/openid-client) | [`6.6.2` -> `6.6.4`](https://renovatebot.com/diffs/npm/openid-client/6.6.2/6.6.4) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [pino](https://getpino.io) ([source](https://redirect.github.com/pinojs/pino)) | [`9.8.0` -> `9.9.0`](https://renovatebot.com/diffs/npm/pino/9.8.0/9.9.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [pnpm](https://pnpm.io) ([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) | [`10.14.0` -> `10.15.0`](https://renovatebot.com/diffs/npm/pnpm/10.14.0/10.15.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | packageManager | minor | | [pnpm](https://pnpm.io) ([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) | [`10.14.0` -> `10.15.0`](https://renovatebot.com/diffs/npm/pnpm/10.14.0/10.15.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | engines | minor | | [pnpm](https://pnpm.io) ([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) | `10.14.0` -> `10.15.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | uses-with | minor | | [python](https://redirect.github.com/actions/python-versions) | `3.13.6` -> `3.13.7` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | uses-with | patch | | [reka-ui](https://redirect.github.com/unovue/reka-ui) | [`2.4.1` -> `2.5.0`](https://renovatebot.com/diffs/npm/reka-ui/2.4.1/2.5.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [rollup-plugin-node-externals](https://redirect.github.com/Septh/rollup-plugin-node-externals) | [`8.0.1` -> `8.1.0`](https://renovatebot.com/diffs/npm/rollup-plugin-node-externals/8.0.1/8.1.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [storybook](https://storybook.js.org) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/core)) | [`9.1.2` -> `9.1.3`](https://renovatebot.com/diffs/npm/storybook/9.1.2/9.1.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [systeminformation](https://systeminformation.io) ([source](https://redirect.github.com/sebhildebrandt/systeminformation)) | [`5.27.7` -> `5.27.8`](https://renovatebot.com/diffs/npm/systeminformation/5.27.7/5.27.8) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [tailwindcss](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss)) | [`4.1.11` -> `4.1.12`](https://renovatebot.com/diffs/npm/tailwindcss/4.1.11/4.1.12) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [tailwindcss](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss)) | [`4.1.11` -> `4.1.12`](https://renovatebot.com/diffs/npm/tailwindcss/4.1.11/4.1.12) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | peerDependencies | patch | | [tsx](https://tsx.is) ([source](https://redirect.github.com/privatenumber/tsx)) | [`4.20.3` -> `4.20.5`](https://renovatebot.com/diffs/npm/tsx/4.19.3/4.20.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [tsx](https://tsx.is) ([source](https://redirect.github.com/privatenumber/tsx)) | [`4.20.3` -> `4.20.5`](https://renovatebot.com/diffs/npm/tsx/4.20.3/4.20.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [tw-animate-css](https://redirect.github.com/Wombosvideo/tw-animate-css) | [`1.3.6` -> `1.3.7`](https://renovatebot.com/diffs/npm/tw-animate-css/1.3.6/1.3.7) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [tw-animate-css](https://redirect.github.com/Wombosvideo/tw-animate-css) | [`1.3.6` -> `1.3.7`](https://renovatebot.com/diffs/npm/tw-animate-css/1.3.6/1.3.7) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [typescript-eslint](https://typescript-eslint.io/packages/typescript-eslint) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint)) | [`8.39.1` -> `8.41.0`](https://renovatebot.com/diffs/npm/typescript-eslint/8.39.1/8.41.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [undici](https://undici.nodejs.org) ([source](https://redirect.github.com/nodejs/undici)) | [`7.13.0` -> `7.15.0`](https://renovatebot.com/diffs/npm/undici/7.13.0/7.15.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | peerDependencies | minor | | [undici](https://undici.nodejs.org) ([source](https://redirect.github.com/nodejs/undici)) | [`7.13.0` -> `7.15.0`](https://renovatebot.com/diffs/npm/undici/7.13.0/7.15.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [undici](https://undici.nodejs.org) ([source](https://redirect.github.com/nodejs/undici)) | [`7.13.0` -> `7.15.0`](https://renovatebot.com/diffs/npm/undici/7.13.0/7.15.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [unplugin-swc](https://redirect.github.com/unplugin/unplugin-swc/tree/main/#readme) ([source](https://redirect.github.com/unplugin/unplugin-swc)) | [`1.5.5` -> `1.5.7`](https://renovatebot.com/diffs/npm/unplugin-swc/1.5.5/1.5.7) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [vite](https://vite.dev) ([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite)) | [`7.1.1` -> `7.1.3`](https://renovatebot.com/diffs/npm/vite/7.1.1/7.1.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [vite-plugin-vue-devtools](https://redirect.github.com/vuejs/devtools) ([source](https://redirect.github.com/vuejs/devtools/tree/HEAD/packages/vite)) | [`8.0.0` -> `8.0.1`](https://renovatebot.com/diffs/npm/vite-plugin-vue-devtools/8.0.0/8.0.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [vue](https://redirect.github.com/vuejs/core/tree/main/packages/vue#readme) ([source](https://redirect.github.com/vuejs/core)) | [`3.5.18` -> `3.5.20`](https://renovatebot.com/diffs/npm/vue/3.5.18/3.5.20) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [vue](https://redirect.github.com/vuejs/core/tree/main/packages/vue#readme) ([source](https://redirect.github.com/vuejs/core)) | [`3.5.18` -> `3.5.20`](https://renovatebot.com/diffs/npm/vue/3.5.18/3.5.20) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | peerDependencies | patch | | [vue-tsc](https://redirect.github.com/vuejs/language-tools) ([source](https://redirect.github.com/vuejs/language-tools/tree/HEAD/packages/tsc)) | [`3.0.5` -> `3.0.6`](https://renovatebot.com/diffs/npm/vue-tsc/3.0.5/3.0.6) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [vuetify](https://vuetifyjs.com) ([source](https://redirect.github.com/vuetifyjs/vuetify/tree/HEAD/packages/vuetify)) | [`3.9.4` -> `3.9.6`](https://renovatebot.com/diffs/npm/vuetify/3.9.4/3.9.6) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [wrangler](https://redirect.github.com/cloudflare/workers-sdk) ([source](https://redirect.github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler)) | [`4.28.1` -> `4.33.0`](https://renovatebot.com/diffs/npm/wrangler/4.28.1/4.33.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [zx](https://google.github.io/zx/) ([source](https://redirect.github.com/google/zx)) | [`8.8.0` -> `8.8.1`](https://renovatebot.com/diffs/npm/zx/8.3.2/8.8.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [zx](https://google.github.io/zx/) ([source](https://redirect.github.com/google/zx)) | [`8.8.0` -> `8.8.1`](https://renovatebot.com/diffs/npm/zx/8.8.0/8.8.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | --- ### Release Notes <details> <summary>apollographql/apollo-client (@​apollo/client)</summary> ### [`v3.14.0`](https://redirect.github.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#3140) [Compare Source]( |
||
|
|
1bf74e9d6c |
chore(main): release 4.16.0 (#1613)
🤖 I have created a release *beep* *boop* --- ## [4.16.0](https://github.com/unraid/api/compare/v4.15.1...v4.16.0) (2025-08-27) ### Features * add `parityCheckStatus` field to `array` query ([#1611](https://github.com/unraid/api/issues/1611)) ([v4.16.0 |
||
|
|
9cd0d6ac65 |
fix: remove unused api key calls (#1628)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - New Features - None. - Bug Fixes - Improved reliability of API key updates and clearer errors when keys are missing or data is invalid. - More robust initialization to prevent intermittent failures during API key operations. - Refactor - Simplified API key management by unifying lookup flows and adopting consistent async handling. - Tests - Expanded coverage for error scenarios and strengthened test setup for initialization and file-read issues. - Chores - Minor formatting cleanups. <!-- end of auto-generated comment: release notes by coderabbit.ai -->4.15.1-build-number-149 |
||
|
|
f0348aa038 |
refactor: simplify DockerService by removing OnModuleInit implementation
Removed the OnModuleInit interface and its associated initialization logic from DockerService. This change streamlines the service by eliminating unnecessary complexity related to module initialization, while maintaining core functionality. |
||
|
|
c1ab3a4746 |
refactor: implement local-session for internal client auth (#1606)
Remove the confusing API keys that were auto-generated for the CLI & Connect. Instead, support authentication via a custom `local-session` header. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Local-session authentication for internal/CLI requests (x-local-session) with generation, validation, on-disk persistence, and lifecycle init. * Internal client gains multi-strategy auth (local session, cookie, or API key), supports subscriptions/origin, and can be cleared/recreated. * **Security** * Embedded development API keys removed from the repository. * **Refactor** * Canonical internal client introduced; consumers migrated from legacy CLI key services. * **Tests / Chores** * Tests, env, and gitignore updated for local-session and canonical-client changes. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Pujit Mehrotra <pujit@lime-technology.com> |
||
|
|
7d67a40433 |
fix: correctly parse periods in share names from ini file (#1629)
Share names live as section headers in `emhttp/state/shares.ini`. However, periods in ini section headers typically denote nested hierarchy. This behavior is disabled in unraid's php setup, but cannot be disabled/configured in the api's current ini parser. So, we perform post-processing to reconcile nested objects into dot notation. Known issue: trailing and leading periods will not be treated as distinct from shares without them. i.e. `.share.name.` will conflict with `share.name`, `.share.name`, or `share.name.`. The last of the conflicting names will be used/exposed. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - New Features - Support shares with periods and emoji in their names across parsing and listings. - Bug Fixes - Fixed configuration parsing for section names containing periods to ensure affected shares load and display correctly. - Standardized reporting of encryption status for all shares. - Tests - Expanded coverage to validate parsing and retrieval of shares with special characters (periods and emoji), ensuring consistent behavior across modules. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
674323fd87 |
feat: generated UI API key management + OAuth-like API Key Flows (#1609)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * API Key Authorization flow with consent screen, callback support, and a Tools page. * Schema-driven API Key creation UI with permission presets, templates, and Developer Authorization Link. * Effective Permissions preview and a new multi-select permission control. * **UI Improvements** * Mask/toggle API keys, copy-to-clipboard with toasts, improved select labels, new label styles, tab wrapping, and accordionized color controls. * **Documentation** * Public guide for the API Key authorization flow and scopes added. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
6947b5d4af |
fix(rc.unraid-api): remove profile sourcing (#1622)
This change removes the line that sources `/etc/profile` from the `rc.unraid-api` script. This is done to prevent unexpected side effects and improve the script's isolation. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> |
||
|
|
c4cc54923c | test: add integration tests for deleting invalid notifications (#1626) | ||
|
|
c508366702 |
feat: add parityCheckStatus field to array query (#1611)
Responds with a ParityCheck:
```ts
type ParityCheck {
"""Date of the parity check"""
date: DateTime
"""Duration of the parity check in seconds"""
duration: Int
"""Speed of the parity check, in MB/s"""
speed: String
"""Status of the parity check"""
status: ParityCheckStatus!
"""Number of errors during the parity check"""
errors: Int
"""Progress percentage of the parity check"""
progress: Int
"""Whether corrections are being written to parity"""
correcting: Boolean
"""Whether the parity check is paused"""
paused: Boolean
"""Whether the parity check is running"""
running: Boolean
}
enum ParityCheckStatus {
NEVER_RUN = 'never_run',
RUNNING = 'running',
PAUSED = 'paused',
COMPLETED = 'completed',
CANCELLED = 'cancelled',
FAILED = 'failed',
}
```
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- New Features
- Exposes a structured parity-check status for arrays with detailed
fields (status enum: NEVER_RUN, RUNNING, PAUSED, COMPLETED, CANCELLED,
FAILED), date, duration, speed, progress, errors, and running/paused
flags.
- Tests
- Adds comprehensive unit tests covering all parity-check states,
numeric edge cases, speed/date/duration/progress calculations, and
real-world scenarios.
- Refactor
- Safer numeric/date parsing and a new numeric-conversion helper; minor
formatting/cleanup in shared utilities.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
|
||
|
|
9df6a3f5eb |
fix(connect): clear wanport upon disabling remote access (#1624)
Resolve #1615 -- lingering wanport caused issue with LAN Access via Connect, because those URL's are constructed using `wanport`, but since WAN access would be disabled, NGINX would not listen on the port. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * WAN access settings now correctly gate related options; UPnP only enables when WAN access is Always. * Static WAN port is applied only when eligible and is cleared when WAN access is disabled to avoid unintended overrides. * Dynamic remote access migration uses sanitized URLs to prevent propagation of user-provided addressing. * **Chores** * Minor ordering and formatting adjustments to reflect updated precedence and clarify behavior. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
aa588883cc |
fix(connect): valid LAN FQDN while remote access is enabled (#1625)
Stop appending `wanport` to LAN FQDN when remote access is enabled. |
||
|
|
b2e7801238 | fix: retry VMs init for up to 2 min (#1612) | ||
|
|
fd895cacf0 |
refactor: reuse ChangelogModal in HeaderOsVersion component (#1607)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - New Features - View OS release notes directly for the currently displayed version, with a link to open in a new tab. - Changelog modal supports viewing a specific release outside the update flow. - Improvements - Changelog modal prioritizes a prettier docs view when available, with fallback to raw notes. - Enhanced theming with better dark mode support, including Azure theme alignment. - Clearer modal behavior: consistent open/close handling and titles based on the selected release. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |