Eli Bosley
f49fdf0e9a
feat: integrate ConfigModule into module dependencies test
...
- Added `ConfigModule` to the imports in the module dependencies integration test to enhance configuration management during testing.
- This change supports better handling of environment variables and application settings in the test environment.
2025-11-19 06:36:56 -05:00
Eli Bosley
9b92cd072c
feat: add ConfigModule to OIDC base module imports
...
- Integrated `ConfigModule` into the OIDC base module to enhance configuration management capabilities.
- This addition supports better handling of environment variables and application settings.
2025-11-19 06:36:56 -05:00
Eli Bosley
6527494ce6
Refactor RestService tests and remove deprecated files
...
- Updated `rest.service.spec.ts` to include new tests for `getCustomizationPath` and `getCustomizationStream` methods, ensuring proper handling of banner and case paths.
- Removed obsolete test files: `rest.service.test.ts`, `rest-module-dependencies.test.ts`, and `rest-module.integration.test.ts` to streamline the test suite.
- Added necessary mocks for file system operations and image file helper functions to enhance test reliability.
2025-11-19 06:36:56 -05:00
Eli Bosley
c78197052e
Remove Unraid API log download helper
2025-11-19 06:36:56 -05:00
github-actions[bot]
3d4f193fa4
chore(main): release 4.26.1 ( #1790 )
...
🤖 I have created a release *beep* *boop*
---
## [4.26.1](https://github.com/unraid/api/compare/v4.26.0...v4.26.1 )
(2025-11-18)
### Bug Fixes
* **theme:** update theme class naming and scoping logic
([b28ef1e ](https://github.com/unraid/api/commit/b28ef1ea334cb4842f01fa992effa7024185c6c9 ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-18 13:37:18 -05:00
github-actions[bot]
ee0f240233
chore(main): release 4.26.0 ( #1744 )
...
🤖 I have created a release *beep* *boop*
---
## [4.26.0](https://github.com/unraid/api/compare/v4.25.3...v4.26.0 )
(2025-11-17)
### Features
* add cpu power query & subscription
([#1745 ](https://github.com/unraid/api/issues/1745 ))
([d7aca81 ](https://github.com/unraid/api/commit/d7aca81c60281bfa47fb9113929c1ead6ed3361b ))
* add schema publishing to apollo studio
([#1772 ](https://github.com/unraid/api/issues/1772 ))
([7e13202 ](https://github.com/unraid/api/commit/7e13202aa1c02803095bb72bb1bcb2472716f53a ))
* add workflow_dispatch trigger to schema publishing workflow
([818e7ce ](https://github.com/unraid/api/commit/818e7ce997059663e07efcf1dab706bf0d7fc9da ))
* apollo studio readme link
([c4cd0c6 ](https://github.com/unraid/api/commit/c4cd0c63520deec15d735255f38811f0360fe3a1 ))
* **cli:** make `unraid-api plugins remove` scriptable
([#1774 ](https://github.com/unraid/api/issues/1774 ))
([64eb9ce ](https://github.com/unraid/api/commit/64eb9ce9b5d1ff4fb1f08d9963522c5d32221ba7 ))
* use persisted theme css to fix flashes on header
([#1784 ](https://github.com/unraid/api/issues/1784 ))
([854b403 ](https://github.com/unraid/api/commit/854b403fbd85220a3012af58ce033cf0b8418516 ))
### Bug Fixes
* **api:** decode html entities before parsing notifications
([#1768 ](https://github.com/unraid/api/issues/1768 ))
([42406e7 ](https://github.com/unraid/api/commit/42406e795da1e5b95622951a467722dde72d51a8 ))
* **connect:** disable api plugin if unraid plugin is absent
([#1773 ](https://github.com/unraid/api/issues/1773 ))
([c264a18 ](https://github.com/unraid/api/commit/c264a1843cf115e8cc1add1ab4f12fdcc932405a ))
* detection of flash backup activation state
([#1769 ](https://github.com/unraid/api/issues/1769 ))
([d18eaf2 ](https://github.com/unraid/api/commit/d18eaf2364e0c04992c52af38679ff0a0c570440 ))
* re-add missing header gradient styles
([#1787 ](https://github.com/unraid/api/issues/1787 ))
([f8a6785 ](https://github.com/unraid/api/commit/f8a6785e9c92f81acaef76ac5eb78a4a769e69da ))
* respect OS safe mode in plugin loader
([#1775 ](https://github.com/unraid/api/issues/1775 ))
([92af3b6 ](https://github.com/unraid/api/commit/92af3b61156cabae70368cf5222a2f7ac5b4d083 ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-17 13:03:50 -05:00
Eli Bosley
f8a6785e9c
fix: re-add missing header gradient styles ( #1787 )
...
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Style**
* Enhanced header banner styling: centered, non-repeating cover images
with layered gradient overlays and adjusted user-profile banner
positioning for improved layout.
* **Bug Fixes**
* Banner display logic updated so "image" is treated like "yes" for
showing banner images.
* **Tests**
* Added unit tests covering banner/theme display behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-17 11:03:37 -05:00
Pujit Mehrotra
d7aca81c60
feat: add cpu power query & subscription ( #1745 )
...
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Per-package CPU power and temperature displayed in hardware info
(total and per-package values).
* CPU package topology (cores/threads per package) included in CPU info.
* Real-time per-package CPU telemetry exposed via a new system metrics
subscription.
* **Chores**
* Added an automated deployment script and npm deploy script for the
shared package.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Signed-off-by: Simon Fairweather <simon.n.fairweather@gmail.com >
Co-authored-by: Simon Fairweather <simon.n.fairweather@gmail.com >
Co-authored-by: SimonFair <39065407+SimonFair@users.noreply.github.com >
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-11-14 14:27:49 -05:00
Pujit Mehrotra
c264a1843c
fix(connect): disable api plugin if unraid plugin is absent ( #1773 )
...
Mitigates an edge case where the connect api plugin does not uninstall
itself when Unraid version < 7.2.0, resulting in retention of undesired
connect functionality on stock unraid after upgrading to 7.2.0+.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* App now detects Connect plugin availability at startup and falls back
gracefully with a no-op mode and a logged warning if the plugin is
absent.
* Added an environment option to skip the plugin availability check when
needed.
* Export behavior adjusted so the application uses the appropriate
module based on plugin presence.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-13 12:26:35 -05:00
Pujit Mehrotra
64eb9ce9b5
feat(cli): make unraid-api plugins remove scriptable ( #1774 )
...
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added --bypass-npm and --npm flags, support for passing plugin names
as command args, and a restart option; CLI params now merge with
interactive prompts.
* **Bug Fixes**
* Vendor archive rebuild is performed only when actual uninstalls occur.
* Restart behavior uses resolved options for consistent restarts.
* Removal can run as "config-only" without running package operations.
* **Tests**
* Expanded tests for bypass scenarios, prompt flows, config-only
removals, and removal control flow.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-13 10:49:50 -05:00
Pujit Mehrotra
92af3b6115
fix: respect OS safe mode in plugin loader ( #1775 )
...
- also adds util for reading ini configs synchronously
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Release Notes
* **New Features**
* Added safe mode support to prevent plugin loading when enabled,
returning an empty plugin list in safe mode.
* **Tests**
* Added comprehensive test coverage for safe mode functionality and
state file loading mechanisms.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-13 10:15:12 -05:00
Pujit Mehrotra
42406e795d
fix(api): decode html entities before parsing notifications ( #1768 )
...
so the parser does not treat them as comments.
This surfaces a new bug: `#`'s in notification subject or descriptions
are treated as comments, and content following a `#` will not be
displayed in queries from the api, unless the values are explicitly
quoted as strings:
```
subject=Warning #1 OS # ❌ Truncates after "Warning"
subject=\#1 OS # ❌ Backslash escape doesn't work
subject="Warning #1 OS" # ✅ Double quotes work!
subject='Warning #1 OS' # ✅ Single quotes work!
```
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Version 4.25.3
* **Improvements**
* Enhanced notification system with improved handling of special
characters and HTML-formatted content in messages.
* Better text rendering accuracy across all notification types.
* **Chores**
* Updated application dependencies.
* Version bumped to 4.25.3.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-07 14:49:22 -05:00
Pujit Mehrotra
34075e44c5
fix: flaky watch on boot drive's dynamix config ( #1753 )
...
On FAT32, `fs.stat()` updates accesstime, which means file reads are
also writes, which means we can't use `usePoll` without degrading users'
flash drives.
To keep file reads lazy without a larger refactor, I override
`getters.dynamix()` as the entrypoint to re-read the boot drive's
dynamix config.
Consecutive calls to `getters.dynamix()` are a common access pattern,
which means we have to memoize to avoid many redundant file reads, so I
used a TTL cache with a 250ms lifetime, hoping to scope config files to
each request.
`getters.dynamix()` is also used synchonously, so bit the bullet and
switched away from async reads for simplicity, considering that most
reads will be occurring from memory, even during cache misses.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added a TTL memoized loader utility with exported types.
* Added a public function to load Dynamix configuration at startup.
* **Refactor**
* Startup now uses the deterministic, cached config loader; runtime
file-watch for Dynamix config removed.
* Simplified config state handling and load-status reporting for more
predictable startup behavior.
* **Tests**
* Added tests for TTL caching, eviction, keying, and conditional
caching.
* **Chores**
* Bumped package versions and updated changelog.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-27 11:05:13 -04:00
Eli Bosley
f212dce88b
fix: use relative URLs in the web links and fix color in PM2 startup ( #1752 )
...
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Release Notes
* **Refactor**
* Consolidated URL resolution and handling logic for improved
consistency across the application
* Enhanced GraphQL endpoint configuration with better fallback
mechanisms for more reliable connections
* Optimized platform command execution through improved default
parameter handling
* **Chores**
* Infrastructure configuration updates and maintenance
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-10-21 10:10:50 -04:00
Eli Bosley
31c41027fc
feat: translations now use crowdin (translate.unraid.net) ( #1739 )
...
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- App-wide internationalization: dynamic locale detection/loading, many
new locale bundles, and CLI helpers to extract/sort translation keys.
- **Accessibility**
- Brand button supports keyboard activation (Enter/Space).
- **Documentation**
- Internationalization guidance added to API and Web READMEs.
- **Refactor**
- UI updated to use centralized i18n keys and a unified locale loading
approach.
- **Tests**
- Test utilities updated to support i18n and localized assertions.
- **Chores**
- Crowdin config and i18n scripts added; runtime locale exposed for
selection.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-10-13 16:56:08 -04:00
Pujit Mehrotra
754966d5d3
fix: api auth from web during local dev ( #1743 )
2025-10-07 19:45:50 -04:00
github-actions[bot]
50d83313a1
chore(main): release 4.25.2 ( #1734 )
...
🤖 I have created a release *beep* *boop*
---
## [4.25.2](https://github.com/unraid/api/compare/v4.25.1...v4.25.2 )
(2025-09-30)
### Bug Fixes
* enhance activation code modal visibility logic
([#1733 ](https://github.com/unraid/api/issues/1733 ))
([e57ec00 ](https://github.com/unraid/api/commit/e57ec00627e54ce76d903fd0fa8686ad02b393f3 ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-30 17:16:08 -04:00
github-actions[bot]
84f4a7221d
chore(main): release 4.25.1 ( #1732 )
...
🤖 I have created a release *beep* *boop*
---
## [4.25.1](https://github.com/unraid/api/compare/v4.25.0...v4.25.1 )
(2025-09-30)
### Bug Fixes
* add cache busting to web component extractor
([#1731 ](https://github.com/unraid/api/issues/1731 ))
([0d165a6 ](https://github.com/unraid/api/commit/0d165a608740505bdc505dcf69fb615225969741 ))
* Connect won't appear within Apps - Previous Apps
([#1727 ](https://github.com/unraid/api/issues/1727 ))
([d73953f ](https://github.com/unraid/api/commit/d73953f8ff3d7425c0aed32d16236ededfd948e1 ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-30 13:01:57 -04:00
github-actions[bot]
f4f3e3c44b
chore(main): release 4.25.0 ( #1725 )
...
🤖 I have created a release *beep* *boop*
---
## [4.25.0](https://github.com/unraid/api/compare/v4.24.1...v4.25.0 )
(2025-09-26)
### Features
* add Tailwind scoping plugin and integrate into Vite config
([#1722 ](https://github.com/unraid/api/issues/1722 ))
([b7afaf4 ](https://github.com/unraid/api/commit/b7afaf463243b073e1ab1083961a16a12ac6c4a3 ))
* notification filter controls pill buttons
([#1718 ](https://github.com/unraid/api/issues/1718 ))
([661865f ](https://github.com/unraid/api/commit/661865f97611cf802f239fde8232f3109281dde6 ))
### Bug Fixes
* enable auth guard for nested fields - thanks
[@ingel81](https://github.com/ingel81 )
([7bdeca8 ](https://github.com/unraid/api/commit/7bdeca8338a3901f15fde06fd7aede3b0c16e087 ))
* enhance user context validation in auth module
([#1726 ](https://github.com/unraid/api/issues/1726 ))
([cd5eff1 ](https://github.com/unraid/api/commit/cd5eff11bcb4398581472966cb7ec124eac7ad0a ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-26 12:58:08 -04:00
Eli Bosley
cd5eff11bc
fix: enhance user context validation in auth module ( #1726 )
...
Fixes #1723
- Improved error handling in the auth module to ensure user context is
present and valid.
- Added checks for user roles and identifiers, throwing appropriate
exceptions for missing or invalid data.
- Introduced a new integration test suite for AuthZGuard, validating
role-based access control for various actions in the application.
- Tests cover scenarios for viewer and admin roles, ensuring correct
permissions are enforced.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Hardened authorization: properly rejects requests with missing users
or invalid roles and ensures a valid subject is derived for permission
checks, improving reliability and security of access control responses.
* **Tests**
* Added comprehensive integration tests for authorization, covering
admin/viewer role behaviors, API key permissions, and various resource
actions to verify expected allow/deny outcomes across scenarios.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-26 12:50:31 -04:00
Eli Bosley
7bdeca8338
fix: enable auth guard for nested fields - thanks @ingel81
2025-09-26 11:12:17 -04:00
github-actions[bot]
b3ca40c639
chore(main): release 4.24.1 ( #1721 )
...
🤖 I have created a release *beep* *boop*
---
## [4.24.1](https://github.com/unraid/api/compare/v4.24.0...v4.24.1 )
(2025-09-23)
### Bug Fixes
* cleanup leftover removed packages on upgrade
([#1719 ](https://github.com/unraid/api/issues/1719 ))
([9972a5f ](https://github.com/unraid/api/commit/9972a5f178f9a251e6c129d85c5f11cfd25e6281 ))
* enhance version comparison logic in installation script
([d9c561b ](https://github.com/unraid/api/commit/d9c561bfebed0c553fe4bfa26b088ae71ca59755 ))
* issue with incorrect permissions on viewer / other roles
([378cdb7 ](https://github.com/unraid/api/commit/378cdb7f102f63128dd236c13f1a3745902d5a2c ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-23 16:06:18 -04:00
Eli Bosley
378cdb7f10
fix: issue with incorrect permissions on viewer / other roles
2025-09-23 15:46:22 -04:00
github-actions[bot]
ed9a5c5ff9
chore(main): release 4.24.0 ( #1717 )
...
🤖 I have created a release *beep* *boop*
---
## [4.24.0](https://github.com/unraid/api/compare/v4.23.1...v4.24.0 )
(2025-09-18)
### Features
* improve dom content loading by being more efficient about component
mounting ([#1716 ](https://github.com/unraid/api/issues/1716 ))
([d8b166e ](https://github.com/unraid/api/commit/d8b166e4b6a718e07783d9c8ac8393b50ec89ae3 ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-18 12:59:58 -04:00
github-actions[bot]
8b862ecef5
chore(main): release 4.23.1 ( #1715 )
...
🤖 I have created a release *beep* *boop*
---
## [4.23.1](https://github.com/unraid/api/compare/v4.23.0...v4.23.1 )
(2025-09-17)
### Bug Fixes
* cleanup ini parser logic with better fallbacks
([#1713 ](https://github.com/unraid/api/issues/1713 ))
([1691362 ](https://github.com/unraid/api/commit/16913627de9497a5d2f71edb710cec6e2eb9f890 ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-17 14:46:58 -04:00
Eli Bosley
16913627de
fix: cleanup ini parser logic with better fallbacks ( #1713 )
...
Added a new parser for INI boolean values, including functions to
convert INI boolean strings to JavaScript booleans and handle malformed
inputs. Introduced unit tests to validate the functionality of both
`iniBooleanToJsBoolean` and `iniBooleanOrAutoToJsBoolean`, covering
various valid, malformed, and edge case scenarios. Updated state parsers
to utilize the new functions for improved reliability.
2025-09-17 13:59:57 -04:00
Eli Bosley
6b2f331941
chore: remove deprecated API documentation files and workflow ( #1714 )
...
This commit deletes the outdated API documentation files and the
associated GitHub Actions workflow for updating the API documentation.
All content has been permanently moved to the Unraid Docs repository.
2025-09-17 13:23:42 -04:00
renovate[bot]
8f02d96464
chore(deps): update dependency @types/uuid to v11 ( #1711 )
...
Coming soon: The Renovate bot (GitHub App) will be renamed to Mend. PRs
from Renovate will soon appear from 'Mend'. Learn more
[here](https://redirect.github.com/renovatebot/renovate/discussions/37842 ).
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
|
[@types/uuid](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/uuid )
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/uuid ))
| [`10.0.0` ->
`11.0.0`](https://renovatebot.com/diffs/npm/@types%2fuuid/10.0.0/11.0.0 )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### 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 becomes conflicted, 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:eyJjcmVhdGVkSW5WZXIiOiI0MS45Ny4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjk3LjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-17 09:41:08 -04:00
github-actions[bot]
810be7a679
chore(main): release 4.23.0 ( #1707 )
...
🤖 I have created a release *beep* *boop*
---
## [4.23.0](https://github.com/unraid/api/compare/v4.22.2...v4.23.0 )
(2025-09-16)
### Features
* add unraid api status manager
([#1708 ](https://github.com/unraid/api/issues/1708 ))
([1d9ce0a ](https://github.com/unraid/api/commit/1d9ce0aa3d067726c2c880929408c68f53e13e0d ))
### Bug Fixes
* **logging:** remove colorized logs
([#1705 ](https://github.com/unraid/api/issues/1705 ))
([1d2c670 ](https://github.com/unraid/api/commit/1d2c6701ce56b1d40afdb776065295e9273d08e9 ))
* no sizeRootFs unless queried
([#1710 ](https://github.com/unraid/api/issues/1710 ))
([9714b21 ](https://github.com/unraid/api/commit/9714b21c5c07160b92a11512e8b703908adb0620 ))
* use virtual-modal-container
([#1709 ](https://github.com/unraid/api/issues/1709 ))
([44b4d77 ](https://github.com/unraid/api/commit/44b4d77d803aa724968307cfa463f7c440791a10 ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-16 13:18:09 -04:00
Eli Bosley
9714b21c5c
fix: no sizeRootFs unless queried ( #1710 )
...
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- sizeRootFs now reported in bytes as BigInt.
- Container listings include size only when requested; caching
distinguishes size vs no-size.
- New Docker-related fields: per-container update statuses,
rebuild/update indicators, spinning state, and a mutation to refresh
docker digests.
- **Tests**
- Added unit tests for GraphQL field inspection and container size/cache
behavior.
- **Chores**
- Version bumped to 4.22.2.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-16 12:01:49 -04:00
Eli Bosley
1d2c6701ce
fix(logging): remove colorized logs ( #1705 )
...
Move to simplified logging for PM2 (no more tables)
2025-09-15 13:34:07 -04:00
github-actions[bot]
45d9d65c13
chore(main): release 4.22.2 ( #1699 )
...
🤖 I have created a release *beep* *boop*
---
## [4.22.2](https://github.com/unraid/api/compare/v4.22.1...v4.22.2 )
(2025-09-15)
### Bug Fixes
* **deps:** pin dependency conventional-changelog-conventionalcommits to
9.1.0 ([#1697 ](https://github.com/unraid/api/issues/1697 ))
([9a86c61 ](https://github.com/unraid/api/commit/9a86c615da2e975f568922fa012cc29b3f9cde0e ))
* **deps:** update dependency filenamify to v7
([#1703 ](https://github.com/unraid/api/issues/1703 ))
([b80988a ](https://github.com/unraid/api/commit/b80988aaabebc4b8dbf2bf31f0764bf2f28e1575 ))
* **deps:** update graphqlcodegenerator monorepo (major)
([#1689 ](https://github.com/unraid/api/issues/1689 ))
([ba4a43a ](https://github.com/unraid/api/commit/ba4a43aec863fc30c47dd17370d74daed7f84703 ))
* false positive on verify_install script being external shell
([#1704 ](https://github.com/unraid/api/issues/1704 ))
([31a255c ](https://github.com/unraid/api/commit/31a255c9281b29df983d0f5d0475cd5a69790a48 ))
* improve vue mount speed by 10x
([c855caa ](https://github.com/unraid/api/commit/c855caa9b2d4d63bead1a992f5c583e00b9ba843 ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-15 12:26:56 -04:00
Eli Bosley
167857a323
chore: fix dev environment
2025-09-15 11:38:04 -04:00
renovate[bot]
b80988aaab
fix(deps): update dependency filenamify to v7 ( #1703 )
...
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [filenamify](https://redirect.github.com/sindresorhus/filenamify ) |
[`6.0.0` ->
`7.0.0`](https://renovatebot.com/diffs/npm/filenamify/6.0.0/7.0.0 ) |
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>sindresorhus/filenamify (filenamify)</summary>
###
[`v7.0.0`](https://redirect.github.com/sindresorhus/filenamify/releases/tag/v7.0.0 )
[Compare
Source](https://redirect.github.com/sindresorhus/filenamify/compare/v6.0.0...v7.0.0 )
##### Breaking
- Require Node.js 20
[`cc39041`](https://redirect.github.com/sindresorhus/filenamify/commit/cc39041 )
- Fix Unicode normalization
[`ea8b961`](https://redirect.github.com/sindresorhus/filenamify/commit/ea8b961 )
- Previously, it used the incorrect `NFD` Unicode normalization. It now
uses the correct `NFC` normalization. This could be a breaking change if
you stored the filenames and then compare, as they won't match. You
could run a `NFC` normalization on the stored once to fix that.
##### Improvements
- Use grapheme-safe truncation
[`98169ce`](https://redirect.github.com/sindresorhus/filenamify/commit/98169ce )
- Fix trailing spaces and periods handling
[`43eea4d`](https://redirect.github.com/sindresorhus/filenamify/commit/43eea4d )
***
</details>
---
### 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 becomes conflicted, 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:eyJjcmVhdGVkSW5WZXIiOiI0MS45Ny4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjk3LjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-15 11:24:31 -04:00
renovate[bot]
25ff8992a5
chore(deps): update dependency type-fest to v5 ( #1701 )
...
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [type-fest](https://redirect.github.com/sindresorhus/type-fest ) |
[`4.41.0` ->
`5.0.0`](https://renovatebot.com/diffs/npm/type-fest/4.41.0/5.0.0 ) |
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>sindresorhus/type-fest (type-fest)</summary>
###
[`v5.0.0`](https://redirect.github.com/sindresorhus/type-fest/releases/tag/v5.0.0 )
[Compare
Source](https://redirect.github.com/sindresorhus/type-fest/compare/v4.41.0...v5.0.0 )
##### Breaking
- This package is now pure ESM. **Please [read
this](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c ).**
- Require TypeScript 5.9
[`b5b0214`](https://redirect.github.com/sindresorhus/type-fest/commit/b5b0214 )
- Require Node.js 20
[`cc2b0f2`](https://redirect.github.com/sindresorhus/type-fest/commit/cc2b0f2 )
- Reminder: `type-fest` requires `strict: true` in your tsconfig.
- `StringKeyOf`: Rename to
[`KeyAsString`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/key-as-string.d.ts )
[`e492c9c`](https://redirect.github.com/sindresorhus/type-fest/commit/e492c9c )
-
[`ArrayTail`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/array-tail.d.ts ):
Enable
[`preserveReadonly`](https://redirect.github.com/sindresorhus/type-fest/blob/68469722a9521122b6cb40376c4c4544aef28228/source/array-tail.d.ts#L8-L30 )
by default and remove the option
[`b34b1d8`](https://redirect.github.com/sindresorhus/type-fest/commit/b34b1d8 )
-
[`CamelCase`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/camel-case.d.ts )
/
[`CamelCasedProperties`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/camel-cased-properties.d.ts )
/
[`CamelCasedPropertiesDeep`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/camel-cased-properties-deep.d.ts )
/
[`PascalCase`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/pascal-case.d.ts )
/
[`PascalCasedProperties`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/pascal-cased-properties.d.ts )
/
[`PascalCasedPropertiesDeep`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/pascal-cased-properties-deep.d.ts ):
Disable `preserveConsecutiveUppercase` by default
[`8226c1b`](https://redirect.github.com/sindresorhus/type-fest/commit/8226c1b )
- This aligns it with the general JavaScript naming convention.
-
[`PartialDeep`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/partial-deep.d.ts ):
Disable `allowUndefinedInNonTupleArrays` by default
[`b3c4524`](https://redirect.github.com/sindresorhus/type-fest/commit/b3c4524 )
-
[`Split`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/split.d.ts ):
Enable `strictLiteralChecks` by default
[`544a846`](https://redirect.github.com/sindresorhus/type-fest/commit/544a846 )
-
[`Paths`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/paths.d.ts ):
Default `maxRecursionDepth` 5 (was 10)
[`2ab5dec`](https://redirect.github.com/sindresorhus/type-fest/commit/2ab5dec )
-
[`ObservableLike`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/globals/observable-like.d.ts ):
Move to sub-export
[`2a1072e`](https://redirect.github.com/sindresorhus/type-fest/commit/2a1072e )
- Deprecate `If*` types in favor of a single
[`If`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/if.d.ts )
[`4c2151a`](https://redirect.github.com/sindresorhus/type-fest/commit/4c2151a )
##### New types
-
[`Alphanumeric`](https://redirect.github.com/sindresorhus/type-fest/blob/fc14f87e7fbc89a5dd44291f2c1057d337c34bcd/source/characters.d.ts )
— Single alphanumeric character (`A–Z`, `a–z`, `0–9`).
[`484e030`](https://redirect.github.com/sindresorhus/type-fest/commit/484e030 )
-
[`AllExtend`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/all-extend.d.ts )
— Evaluates to `true` if every element of a tuple/array extends `U`.
[`c8c6d55`](https://redirect.github.com/sindresorhus/type-fest/commit/c8c6d55 )
-
[`ConditionalSimplify`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/conditional-simplify.d.ts )
— Simplifies a type’s unions/intersections with opt-in controls.
[`b7a4771`](https://redirect.github.com/sindresorhus/type-fest/commit/b7a4771 )
-
[`ConditionalSimplifyDeep`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/conditional-simplify-deep.d.ts )
— Deep version of `ConditionalSimplify` that recurses into objects.
[`b7a4771`](https://redirect.github.com/sindresorhus/type-fest/commit/b7a4771 )
-
[`DigitCharacter`](https://redirect.github.com/sindresorhus/type-fest/blob/fc14f87e7fbc89a5dd44291f2c1057d337c34bcd/source/characters.d.ts )
— Single ASCII digit character (`0–9`).
[`484e030`](https://redirect.github.com/sindresorhus/type-fest/commit/484e030 )
-
[`ExcludeStrict`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/exclude-strict.d.ts )
— Non-distributive, stricter variant of `Exclude<T, U>`.
[`e6f62a2`](https://redirect.github.com/sindresorhus/type-fest/commit/e6f62a2 )
-
[`ExtendsStrict`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/extends-strict.d.ts )
— Non-distributive `A extends B` check.
[`d71242a`](https://redirect.github.com/sindresorhus/type-fest/commit/d71242a )
-
[`ExtractStrict`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/extract-strict.d.ts )
— Non-distributive, stricter variant of `Extract<T, U>`.
[`98d24fa`](https://redirect.github.com/sindresorhus/type-fest/commit/98d24fa )
-
[`IsLowercase`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/is-lowercase.d.ts )
— Evaluates to `true` if a string literal is all lowercase.
[`afe132c`](https://redirect.github.com/sindresorhus/type-fest/commit/afe132c )
-
[`IsNullable`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/is-nullable.d.ts )
— Evaluates to `true` if `T` includes `null`.
[`5067e25`](https://redirect.github.com/sindresorhus/type-fest/commit/5067e25 )
-
[`IsOptional`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/is-optional.d.ts )
— Evaluates to `true` if `T` includes `undefined`.
[`5067e25`](https://redirect.github.com/sindresorhus/type-fest/commit/5067e25 )
-
[`IsOptionalKeyOf`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/is-optional-key-of.d.ts )
— Evaluates to `true` if property `K` of `T` is optional.
[`93728b5`](https://redirect.github.com/sindresorhus/type-fest/commit/93728b5 )
-
[`IsReadonlyKeyOf`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/is-readonly-key-of.d.ts )
— Evaluates to `true` if property `K` of `T` is readonly.
[`93728b5`](https://redirect.github.com/sindresorhus/type-fest/commit/93728b5 )
-
[`IsRequiredKeyOf`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/is-required-key-of.d.ts )
— Evaluates to `true` if property `K` of `T` is required.
[`93728b5`](https://redirect.github.com/sindresorhus/type-fest/commit/93728b5 )
-
[`IsUnion`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/is-union.d.ts )
— Evaluates to `true` if `T` is a union type.
[`b3d92ed`](https://redirect.github.com/sindresorhus/type-fest/commit/b3d92ed )
-
[`IsUndefined`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/is-undefined.d.ts )
— Evaluates to `true` if the type is exactly `undefined`.
[`f7bc576`](https://redirect.github.com/sindresorhus/type-fest/commit/f7bc576 )
-
[`IsUppercase`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/is-uppercase.d.ts )
— Evaluates to `true` if a string literal is all uppercase.
[`afe132c`](https://redirect.github.com/sindresorhus/type-fest/commit/afe132c )
-
[`LowercaseLetter`](https://redirect.github.com/sindresorhus/type-fest/blob/fc14f87e7fbc89a5dd44291f2c1057d337c34bcd/source/characters.d.ts )
— Single lowercase Latin letter (`a–z`).
[`484e030`](https://redirect.github.com/sindresorhus/type-fest/commit/484e030 )
-
[`RemovePrefix`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/remove-prefix.d.ts )
— Removes a specified prefix from a string literal.
[`18a1c04`](https://redirect.github.com/sindresorhus/type-fest/commit/18a1c04 )
-
[`UppercaseLetter`](https://redirect.github.com/sindresorhus/type-fest/blob/fc14f87e7fbc89a5dd44291f2c1057d337c34bcd/source/characters.d.ts )
— Single uppercase Latin letter (`A–Z`).
[`484e030`](https://redirect.github.com/sindresorhus/type-fest/commit/484e030 )
##### Improvements
-
[`Jsonify`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/jsonify.d.ts ):
Handle `unknown` as `JsonValue`
[`642bb13`](https://redirect.github.com/sindresorhus/type-fest/commit/642bb13 )
-
[`SetRequired`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/set-required.d.ts )
/
[`SetOptional`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/set-optional.d.ts )
/
[`SetReadonly`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/set-readonly.d.ts ):
Handle functions with properties
[`a5e45d4`](https://redirect.github.com/sindresorhus/type-fest/commit/a5e45d4 )
-
[`Schema`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/schema.d.ts ):
Preserve arrays/remove extraneous unions
[`8a96def`](https://redirect.github.com/sindresorhus/type-fest/commit/8a96def );
drop `undefined` for `recurseIntoArrays`
[`1cb955b`](https://redirect.github.com/sindresorhus/type-fest/commit/1cb955b )
-
[`ReadonlyKeysOf`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/readonly-keys-of.d.ts )
/
[`WritableKeysOf`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/writable-keys-of.d.ts ):
Add `object` constraint
[`a6efbe0`](https://redirect.github.com/sindresorhus/type-fest/commit/a6efbe0 )
-
[`TsConfigJson`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/tsconfig-json.d.ts ):
Add TypeScript 5.9 fields
[`d2bda94`](https://redirect.github.com/sindresorhus/type-fest/commit/d2bda94 )
##### Fixes
-
[`Or`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/or.d.ts ):
Fix with `boolean`, `never`, `any`
[`42d6106`](https://redirect.github.com/sindresorhus/type-fest/commit/42d6106 )
-
[`And`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/and.d.ts ):
Fix with `boolean`, `never`, `any`
[`b38ac60`](https://redirect.github.com/sindresorhus/type-fest/commit/b38ac60 )
-
[`IsStringLiteral`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/is-literal.d.ts ):
Fix uncollapsed unions, and tagged types
[`eb37799`](https://redirect.github.com/sindresorhus/type-fest/commit/eb37799 )
/
[`d1b35c7`](https://redirect.github.com/sindresorhus/type-fest/commit/d1b35c7 )
-
[`Paths`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/paths.d.ts ):
Fix behavior with index signatures
[`9926e5d`](https://redirect.github.com/sindresorhus/type-fest/commit/9926e5d )
-
[`ConditionalKeys`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/conditional-keys.d.ts ):
Fix behavior with arrays and unions
[`4d7cc50`](https://redirect.github.com/sindresorhus/type-fest/commit/4d7cc50 )
-
[`RequiredDeep`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/required-deep.d.ts ):
Fix with `undefined`
[`bfcdbc4`](https://redirect.github.com/sindresorhus/type-fest/commit/bfcdbc4 )
-
[`Split`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/split.d.ts ):
Fix template strings ending with interpolation
[`853b881`](https://redirect.github.com/sindresorhus/type-fest/commit/853b881 )
-
[`ArrayTail`](https://redirect.github.com/sindresorhus/type-fest/blob/main/source/array-tail.d.ts ):
Fix fix non-tuple arrays
[`f3aabd8`](https://redirect.github.com/sindresorhus/type-fest/commit/f3aabd8 )
- Fix `UnionMin` and `UnionMax`
[`d52d5e7`](https://redirect.github.com/sindresorhus/type-fest/commit/d52d5e7 )
##### Meta
Huge thanks to all the contributors to this release, especially
[@​som-sm](https://redirect.github.com/som-sm ) 🙌
***
</details>
---
### 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 becomes conflicted, 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:eyJjcmVhdGVkSW5WZXIiOiI0MS45Ny4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjk3LjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-15 11:24:31 -04:00
Eli Bosley
c855caa9b2
fix: improve vue mount speed by 10x
...
- Refactored teleport container management to be lazily created,
improving performance by avoiding unnecessary DOM manipulations.
- Updated `useTeleport` to dynamically determine the correct teleport
target based on mounted components.
- Removed the `ensureTeleportContainer` import from various components,
streamlining the mounting process.
- Adjusted the dropdown menu component to utilize a computed property
for teleport target management.
- Enhanced the component registry to support a unified app architecture,
replacing legacy mounting functions with a more efficient approach.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Support bundles may include the GraphQL API log when present.
* OS version data loads lazily when the header dropdown first opens.
* Many UI components now load on demand via a unified mounting approach.
* **Bug Fixes**
* Dropdowns and modals consistently stack above other UI elements.
* Server status layout fixes improve small-screen alignment.
* **Breaking Changes**
* Teleport/mounting APIs and public teleport helper were
consolidated/removed; integrations may need update.
* **Tests**
* Extensive new unit tests added for mounting, teleport, modals, and
REST log handling.
<!-- 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>
2025-09-15 11:24:31 -04:00
renovate[bot]
ba4a43aec8
fix(deps): update graphqlcodegenerator monorepo (major) ( #1689 )
2025-09-15 11:24:24 -04:00
github-actions[bot]
c4ca761dfc
chore(main): release 4.22.1 ( #1698 )
...
🤖 I have created a release *beep* *boop*
---
## [4.22.1](https://github.com/unraid/api/compare/v4.22.0...v4.22.1 )
(2025-09-12)
### Bug Fixes
* set input color in SSO field rather than inside of the main.css
([01d353f ](https://github.com/unraid/api/commit/01d353fa08a3df688b37a495a204605138f7f71d ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-12 15:41:12 -04:00
github-actions[bot]
0b20e3ea9f
chore(main): release 4.22.0 ( #1692 )
...
🤖 I have created a release *beep* *boop*
---
## [4.22.0](https://github.com/unraid/api/compare/v4.21.0...v4.22.0 )
(2025-09-12)
### Features
* improved update ui
([#1691 ](https://github.com/unraid/api/issues/1691 ))
([a59b363 ](https://github.com/unraid/api/commit/a59b363ebc1e660f854c55d50fc02c823c2fd0cc ))
### Bug Fixes
* **deps:** update dependency camelcase-keys to v10
([#1687 ](https://github.com/unraid/api/issues/1687 ))
([95faeaa ](https://github.com/unraid/api/commit/95faeaa2f39bf7bd16502698d7530aaa590b286d ))
* **deps:** update dependency p-retry to v7
([#1608 ](https://github.com/unraid/api/issues/1608 ))
([c782cf0 ](https://github.com/unraid/api/commit/c782cf0e8710c6690050376feefda3edb30dd549 ))
* **deps:** update dependency uuid to v13
([#1688 ](https://github.com/unraid/api/issues/1688 ))
([2fef10c ](https://github.com/unraid/api/commit/2fef10c94aae910e95d9f5bcacf7289e2cca6ed9 ))
* **deps:** update dependency vue-sonner to v2
([#1475 ](https://github.com/unraid/api/issues/1475 ))
([f95ca9c ](https://github.com/unraid/api/commit/f95ca9c9cb69725dcf3bb4bcbd0b558a2074e311 ))
* display settings fix for languages on less than 7.2-beta.2.3
([#1696 ](https://github.com/unraid/api/issues/1696 ))
([03dae7c ](https://github.com/unraid/api/commit/03dae7ce66b3409593eeee90cd5b56e2a920ca44 ))
* hide reset help option when sso is being checked
([#1695 ](https://github.com/unraid/api/issues/1695 ))
([222ced7 ](https://github.com/unraid/api/commit/222ced7518d40c207198a3b8548f0e024bc865b0 ))
* progressFrame white on black
([0990b89 ](https://github.com/unraid/api/commit/0990b898bd02c231153157c20d5142e5fd4513cd ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-12 14:59:21 -04:00
Eli Bosley
03dae7ce66
fix: display settings fix for languages on less than 7.2-beta.2.3 ( #1696 )
...
…less
2025-09-12 13:32:26 -04:00
renovate[bot]
95faeaa2f3
fix(deps): update dependency camelcase-keys to v10 ( #1687 )
...
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
|
[camelcase-keys](https://redirect.github.com/sindresorhus/camelcase-keys )
| [`9.1.3` ->
`10.0.0`](https://renovatebot.com/diffs/npm/camelcase-keys/9.1.3/10.0.0 )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>sindresorhus/camelcase-keys (camelcase-keys)</summary>
###
[`v10.0.0`](https://redirect.github.com/sindresorhus/camelcase-keys/releases/tag/v10.0.0 )
[Compare
Source](https://redirect.github.com/sindresorhus/camelcase-keys/compare/v9.1.3...v10.0.0 )
##### Breaking
- Require Node.js 20
[`2cc9388`](https://redirect.github.com/sindresorhus/camelcase-keys/commit/2cc9388 )
##### Fixes
- Fix handling of circular references
[`3936f15`](https://redirect.github.com/sindresorhus/camelcase-keys/commit/3936f15 )
- Fix TypeScript interface compatibility with stricter constraints
[`c89299a`](https://redirect.github.com/sindresorhus/camelcase-keys/commit/c89299a )
- Fix TypeScript types for union types in arrays
[`26e186e`](https://redirect.github.com/sindresorhus/camelcase-keys/commit/26e186e )
***
</details>
---
### 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 becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about these
updates 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:eyJjcmVhdGVkSW5WZXIiOiI0MS45Ny4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjk3LjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-11 22:25:23 -04:00
renovate[bot]
c782cf0e87
fix(deps): update dependency p-retry to v7 ( #1608 )
...
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [p-retry](https://redirect.github.com/sindresorhus/p-retry ) | [`6.2.1`
-> `7.0.0`](https://renovatebot.com/diffs/npm/p-retry/6.2.1/7.0.0 ) |
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>sindresorhus/p-retry (p-retry)</summary>
###
[`v7.0.0`](https://redirect.github.com/sindresorhus/p-retry/releases/tag/v7.0.0 )
[Compare
Source](https://redirect.github.com/sindresorhus/p-retry/compare/v6.2.1...v7.0.0 )
##### Breaking
- Require Node.js 20
[`3bdb53a`](https://redirect.github.com/sindresorhus/p-retry/commit/3bdb53a )
- `onFailedAttempt` and `shouldRetry` now receive a `context` object
instead of a decorated `error`
[`bff36bb`](https://redirect.github.com/sindresorhus/p-retry/commit/bff36bb )
- You must now must access the error as `object.error` instead of
`object`.
- The use of `.attemptNumber` and `.retriesLeft` did not change.
- Remove the `forever` option
([#​79](https://redirect.github.com/sindresorhus/p-retry/issues/79 ))
[`6a89827`](https://redirect.github.com/sindresorhus/p-retry/commit/6a89827 )
- Many use-cases can use `{retries: Infinity}` instead for infinite
retries.
##### Improvements
- Rewrite the package to not depend on the `retry` package
([#​79](https://redirect.github.com/sindresorhus/p-retry/issues/79 ))
[`6a89827`](https://redirect.github.com/sindresorhus/p-retry/commit/6a89827 )
- This is a full rewrite, so test carefully.
- Add
[`makeRetriable`](https://redirect.github.com/sindresorhus/p-retry#makeretriablefunction-options )
method
[`1a81c1e`](https://redirect.github.com/sindresorhus/p-retry/commit/1a81c1e )
***
</details>
---
### 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 becomes conflicted, 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:eyJjcmVhdGVkSW5WZXIiOiI0MS44MS4yIiwidXBkYXRlZEluVmVyIjoiNDEuODEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-11 22:21:23 -04:00
renovate[bot]
2fef10c94a
fix(deps): update dependency uuid to v13 ( #1688 )
...
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [uuid](https://redirect.github.com/uuidjs/uuid ) | [`11.1.0` ->
`13.0.0`](https://renovatebot.com/diffs/npm/uuid/11.1.0/13.0.0 ) |
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>uuidjs/uuid (uuid)</summary>
###
[`v13.0.0`](https://redirect.github.com/uuidjs/uuid/blob/HEAD/CHANGELOG.md#1300-2025-09-08 )
[Compare
Source](https://redirect.github.com/uuidjs/uuid/compare/v12.0.0...v13.0.0 )
##### ⚠ BREAKING CHANGES
- make browser exports the default
([#​901](https://redirect.github.com/uuidjs/uuid/issues/901 ))
##### Bug Fixes
- make browser exports the default
([#​901](https://redirect.github.com/uuidjs/uuid/issues/901 ))
([bce9d72](https://redirect.github.com/uuidjs/uuid/commit/bce9d72a3ae5b9a3dcd8eb21ef6d1820288a427a ))
###
[`v12.0.0`](https://redirect.github.com/uuidjs/uuid/blob/HEAD/CHANGELOG.md#1200-2025-09-05 )
[Compare
Source](https://redirect.github.com/uuidjs/uuid/compare/v11.1.0...v12.0.0 )
##### ⚠ BREAKING CHANGES
- update to typescript\@​5.2
([#​887](https://redirect.github.com/uuidjs/uuid/issues/887 ))
- remove CommonJS support
([#​886](https://redirect.github.com/uuidjs/uuid/issues/886 ))
- drop node\@​16 support
([#​883](https://redirect.github.com/uuidjs/uuid/issues/883 ))
##### Features
- add node\@​24 to ci matrix
([#​879](https://redirect.github.com/uuidjs/uuid/issues/879 ))
([42b6178](https://redirect.github.com/uuidjs/uuid/commit/42b6178aa21a593257f0a72abacd220f0b7b8a92 ))
- drop node\@​16 support
([#​883](https://redirect.github.com/uuidjs/uuid/issues/883 ))
([0f38cf1](https://redirect.github.com/uuidjs/uuid/commit/0f38cf10366ab074f9328ae2021eea04d5f2e530 ))
- remove CommonJS support
([#​886](https://redirect.github.com/uuidjs/uuid/issues/886 ))
([ae786e2](https://redirect.github.com/uuidjs/uuid/commit/ae786e27265f50bcf7cead196c29f1869297c42f ))
- update to typescript\@​5.2
([#​887](https://redirect.github.com/uuidjs/uuid/issues/887 ))
([c7ee405](https://redirect.github.com/uuidjs/uuid/commit/c7ee40598ed78584d81ab78dffded9fe5ff20b01 ))
##### Bug Fixes
- improve v4() performance
([#​894](https://redirect.github.com/uuidjs/uuid/issues/894 ))
([5fd974c](https://redirect.github.com/uuidjs/uuid/commit/5fd974c12718c8848035650b69b8948f12ace197 ))
- restore node: prefix
([#​889](https://redirect.github.com/uuidjs/uuid/issues/889 ))
([e1f42a3](https://redirect.github.com/uuidjs/uuid/commit/e1f42a354593093ba0479f0b4047dae82d28c507 ))
</details>
---
### 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 becomes conflicted, 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:eyJjcmVhdGVkSW5WZXIiOiI0MS45Ny4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjk3LjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-11 21:20:48 -04:00
github-actions[bot]
88a924c84f
chore(main): release 4.21.0 ( #1684 )
...
🤖 I have created a release *beep* *boop*
---
## [4.21.0](https://github.com/unraid/api/compare/v4.20.4...v4.21.0 )
(2025-09-10)
### Features
* add zsh shell detection to install script
([#1539 ](https://github.com/unraid/api/issues/1539 ))
([50ea2a3 ](https://github.com/unraid/api/commit/50ea2a3ffb82b30152fb85e0fb9b0d178d596efe ))
* **api:** determine if docker container has update
([#1582 ](https://github.com/unraid/api/issues/1582 ))
([e57d81e ](https://github.com/unraid/api/commit/e57d81e0735772758bb85e0b3c89dce15c56635e ))
### Bug Fixes
* white on white login text
([ae4d3ec ](https://github.com/unraid/api/commit/ae4d3ecbc417454ae3c6e02018f8e4c49bbfc902 ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-10 15:14:10 -04:00
Eli Bosley
c569043ab5
chore: rclone initialization version check ( #1683 )
...
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Improvements**
* Enforces a minimum RClone version (1.70.0) with clearer startup/log
messages for missing, too-old, or unparseable versions.
* Adjusted initialization timing to a later bootstrap phase for more
reliable startup.
* **Tests**
* Expanded and hardened tests: broader API endpoint coverage, enhanced
HTTP error scenarios, refined request assertions, and comprehensive
RClone version-detection tests (newer/older, missing, malformed,
beta/RC).
* **Chores**
* Simplified permissions configuration by replacing detailed rules with
an empty permissions object and removing a top-level flag.
<!-- 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>
2025-09-10 11:00:59 -04:00
Eli Bosley
b518131406
chore(docs): improve build:watch mode to be easier to use
2025-09-10 10:27:05 -04:00
Pujit Mehrotra
e57d81e073
feat(api): determine if docker container has update ( #1582 )
...
- Add a new utility class, `AsyncMutex` in `unraid-shared ->
processing.ts`, for ergonomically de-duplicating async operations.
- Add an `@OmitIf` decorator for omitting graphql queries, mutations, or
field resolvers from the runtime graphql schema.
- Add feature-flagging system
- `FeatureFlags` export from `consts.ts`
- `@UseFeatureFlag` decorator built upon `OmitIf`
- `checkFeatureFlag` for constructing & throwing a `ForbiddenError` if
the given feature flag evaluates to `false`.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Expose disk spinning state, per-container "update available" and
"rebuild ready" indicators, a structured per-container update-status
list, and a mutation to refresh Docker digests. Periodic and
post-startup digest refreshes added (feature-flag gated).
* **Chores**
* Cron scheduling refactor and scheduler centralization.
* Build now bundles a PHP wrapper asset.
* Added feature-flag env var and .gitignore entry for local keys.
* **Documentation**
* Added developer guide for feature flags.
* **Tests**
* New concurrency, parser, decorator, config, and mutex test suites.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-09 16:25:32 -04:00
github-actions[bot]
abc22bdb87
chore(main): release 4.20.4 ( #1681 )
...
🤖 I have created a release *beep* *boop*
---
## [4.20.4](https://github.com/unraid/api/compare/v4.20.3...v4.20.4 )
(2025-09-09)
### Bug Fixes
* staging PR plugin fixes + UI issues on 7.2 beta
([b79b44e ](https://github.com/unraid/api/commit/b79b44e95c65a124313814ab55b0d0a745a799c7 ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-09 10:53:45 -04:00
github-actions[bot]
838be2c52e
chore(main): release 4.20.3 ( #1677 )
...
🤖 I have created a release *beep* *boop*
---
## [4.20.3](https://github.com/unraid/api/compare/v4.20.2...v4.20.3 )
(2025-09-09)
### Bug Fixes
* header background color issues fixed on 7.2 - thanks Nick!
([73c1100 ](https://github.com/unraid/api/commit/73c1100d0ba396fe4342f8ce7561017ab821e68b ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-09 09:31:14 -04:00
github-actions[bot]
434e331384
chore(main): release 4.20.2 ( #1676 )
...
🤖 I have created a release *beep* *boop*
---
## [4.20.2](https://github.com/unraid/api/compare/v4.20.1...v4.20.2 )
(2025-09-09)
### Bug Fixes
* trigger deployment
([a27453f ](https://github.com/unraid/api/commit/a27453fda81e4eeb07f257e60516bebbbc27cf7a ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-09 08:46:54 -04:00