Commit Graph

287 Commits

Author SHA1 Message Date
Eli Bosley
ce61fee41c feat: improve local dev with install path (#1221)
- also add better watcher support

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added a helper that displays a local installation URL to simplify
setting up the plugin.

- **Chores**
- Updated service and container port configurations to ensure consistent
network connectivity (changed from 8080 to 5858).
- Refined container management to gracefully handle running instances
during startup.
- Improved build and installation routines for streamlined deployment
and enhanced reliability.
- Enhanced documentation to clarify installation and usage instructions
for better user experience.
- Introduced a new document outlining development workflows for better
guidance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---
- To see the specific tasks where the Asana app for GitHub is being
used, see below:
  - https://app.asana.com/0/0/1209561202532053
2025-03-17 09:44:10 -04:00
Eli Bosley
c8d20eb01c chore: use the webguiGlobals to set the var state 2025-03-06 17:05:51 -05:00
Eli Bosley
f1838bf69a fix: fix invalid path to node with sh execution (#1213)
Hoping this will resolve:
https://forums.unraid.net/topic/187498-unable-to-install-my-server-plugin/


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Improved command-line execution behavior for enhanced compatibility
across different environments.
- Enhanced the version retrieval process by allowing the system to
locate configuration details from multiple potential sources.
- Introduced a build enhancement that conditionally injects a startup
script into bundled outputs, improving script portability and user
experience.
- Specified the Node.js interpreter path in the application
configuration for better execution control.
- Added a symbolic link for the Node.js binary to enhance accessibility.

- **Bug Fixes**
- Enhanced error handling for locating the `package.json` file,
providing feedback when no valid file is found.

- **Chores**
- Removed unnecessary shell script that modified the system's `PATH`
environment variable.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-04 16:13:47 -05:00
Eli Bosley
a09bc85edd chore: delete package lock 2025-03-04 15:32:25 -05:00
Eli Bosley
d63e54bdbc feat: split plugin builds
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced containerized plugin deployment support with updated Docker
Compose configurations.
- Added continuous build watch modes for API, web, and UI components for
smoother development iterations.
  - Added a new job for API testing in the CI/CD workflow.
- Added a new shell script to determine the local host's IP address for
Docker configurations.
- Introduced a new entry point and HTTP server setup in the plugin's
Docker environment.
- Added new scripts for building and watching plugin changes in
real-time.
- Added a new script for building the project in watch mode for the API
and UI components.

- **Improvements**
- Streamlined the plugin installation process and refined release
workflows for a more reliable user experience.
- Enhanced overall CI/CD pipelines to ensure efficient, production-ready
deployments.
- Updated artifact upload paths and job definitions for clarity and
efficiency.
- Implemented new utility functions for better URL management and
changelog generation.
- Modified the `.dockerignore` file to ignore all contents within the
`node_modules` directory.
- Added new constants and functions for managing plugin paths and
configurations.
- Updated the build process in the Dockerfile to focus on release
operations.

- **Tests**
- Expanded automated testing to validate environment setups and build
stability, ensuring higher reliability during updates.
- Introduced new test suites for validating plugin environment setups
and configurations.
- Added tests for validating environment variables and handling of
manifest files.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Datelle <mdatelle@icloud.com>
Co-authored-by: mdatelle <mike@datelle.net>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Pujit Mehrotra <pujit@lime-technology.com>
2025-03-04 15:18:04 -05:00
Eli Bosley
90e4913ef7 chore: add a single changelog for releases (#1191)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Documentation**
	- Streamlined the release notes presentation for improved clarity.
- Consolidated historical release records and now highlights the latest
enhancements and fixes in version 4.1.3.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-24 14:19:36 -05:00
renovate[bot]
3bcf7f5c29 chore(deps): update node.js to v22 (major) (#1179)
Updates node.js in plugin / monorepo
2025-02-24 12:18:07 -05:00
Eli Bosley
e11d5e976d docs: add license to package jsons (#1129)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Documentation**
- Added the complete GNU General Public License (GPL) Version 2 text to
the project’s licensing documentation, clarifying usage conditions and
disclaimers.

- **Chores**
- Updated licensing declarations across multiple project components,
ensuring all parts are now distributed under the GPL-2.0 license.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-02-24 09:27:23 -05:00
github-actions[bot]
d413be8dcb chore(main): release 4.1.3 (#1188)
🤖 I have created a release *beep* *boop*
---


## [4.1.3](https://github.com/unraid/api/compare/v4.1.2...v4.1.3)
(2025-02-21)


### Bug Fixes

* chown correctly ([#1185](https://github.com/unraid/api/issues/1185))
([46a05eb](46a05eb76d))
* create releases as drafts
([5483e9f](5483e9fee9))
* **deps:** update all non-major dependencies
([#1168](https://github.com/unraid/api/issues/1168))
([248d211](248d211050))
* revert config
([7957c2a](7957c2a681))
* small modal window
([#1183](https://github.com/unraid/api/issues/1183))
([08423b8](08423b8dae))

---
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-02-21 15:37:09 -05:00
github-actions[bot]
653b6df4d9 chore(main): release 4.1.2 (#1187)
🤖 I have created a release *beep* *boop*
---


## [4.1.2](https://github.com/unraid/api/compare/v4.1.3...v4.1.2)
(2025-02-21)


### Features

* add api key creation logic
([a1351b0](a1351b0469))
* add category.json
([e784391](e784391ac3))
* add command to package.json scripts
([3348a47](3348a47470))
* add csrf support to api & web components
([#999](https://github.com/unraid/api/issues/999))
([f0f5a30](f0f5a3057a))
* add description flag, remove console log, and update readme
([85cdb8f](85cdb8f525))
* add developer docs
([#1128](https://github.com/unraid/api/issues/1128))
([75474bd](75474bde47))
* add line about recommendation for sso command
([b63720a](b63720a6f2))
* add log rotation
([b1d9ad7](b1d9ad7ef1))
* add logging around fixture downloads
([fa16dcd](fa16dcd801))
* add logrotate cron again
([097415f](097415f6b8))
* add patch for auth-request.php
([b1a1779](b1a1779a8b))
* add unraid-ui documentation
([#1142](https://github.com/unraid/api/issues/1142))
([6378047](6378047bc4))
* add user with cli
([cb59090](cb59090698))
* address log level feedback
([bb95795](bb95795a31))
* allow csrf passing through querystring
([3a8c9b1](3a8c9b13ee))
* allow deletion and creation of files with patches
([1392bde](1392bdeecb))
* always ensureDirectory for keys exists
([8b93bce](8b93bcea08))
* always start the API and run npm link from script path
([bb6baf9](bb6baf9bf4))
* **api:** graphql sandbox on unraid servers
([#1047](https://github.com/unraid/api/issues/1047))
([5dd36d1](5dd36d1836))
* **api:** omit tz from sys time date format by default
([c36082e](c36082e82b))
* **api:** rm 2fa & t2fa from myservers config type
([#996](https://github.com/unraid/api/issues/996))
([f45719f](f45719fa6b))
* array iteration for restoring files
([349145b](349145ba53))
* async disk mapping
([f22b262](f22b262830))
* async hypervisor and FIXED vm listing
([cdfb3c7](cdfb3c772b))
* attempt to resolve performance issues with rm earlier in build …
([#1152](https://github.com/unraid/api/issues/1152))
([c74bdd8](c74bdd8890))
* attempt to start unraid-api with background task
([73a1249](73a12496d5))
* auto-docusaurus-prs
([#1127](https://github.com/unraid/api/issues/1127))
([8a57576](8a575765a9))
* automatic session setup for dev
([e885936](e88593620b))
* back to callbackUrl
([428ad15](428ad15ec7))
* begin building plugin with node instead of bash
([#1120](https://github.com/unraid/api/issues/1120))
([4f5c367](4f5c367fdf))
* begin fixing dark mode in the webcomponents
([2443561](24435613f8))
* begin nuking alpha beta gamma
([cb91fbb](cb91fbb054))
* better patch application
([445f3b5](445f3b50b1))
* better pm2 calls, log lines
([33dd90a](33dd90af04))
* bug report template
([d6fde34](d6fde34365))
* checkout correct branch on close
([#1123](https://github.com/unraid/api/issues/1123))
([e7b7caa](e7b7caae43))
* cleanup config entries
([c2e29df](c2e29dfb5f))
* cleanup disclaimer and command to add users
([3867dfa](3867dfacb2))
* cli Commands
([7fa849d](7fa849d2a0))
* CLI options for adding and deleting users
([bc04129](bc04129342))
* codeowners
([c4d7314](c4d731401c))
* coderabbit suggestion
([3cc3f27](3cc3f27dae))
* configure PM2 on startup
([b73623e](b73623e72a))
* contributing guide
([cc18239](cc18239748))
* convert to pnpm monorepo
([#1137](https://github.com/unraid/api/issues/1137))
([ad6b658](ad6b6589db))
* copy only needed files for nodejs
([cf08627](cf08627725))
* create key cli command logic and add to index command list
([796cb09](796cb09c61))
* csv validation
([89d756e](89d756ef4e))
* default value for option
([632775e](632775e435))
* delete unused imports
([0d6a003](0d6a0035aa))
* disable button on submit
([0da77d7](0da77d7119))
* disable casbin logging
([aa1ef1b](aa1ef1bd4c))
* do not move upgradepkg
([c12d8da](c12d8dae4e))
* docstrings
([935318d](935318dda6))
* dont pass entire server state for privacy
([b969f3a](b969f3a9ab))
* download fixtures from the web
([05f661e](05f661e0e5))
* download nodejs and install on legacy OS versions
([b1a2ba7](b1a2ba78cc))
* eliminate all alpha beta gamma variable usage
([4eda099](4eda0991d6))
* enable PR releases on non-mainline merges
([3419837](3419837eb5))
* enable sandbox in dev mode
([21208bf](21208bfcf6))
* enable sandbox with developer command
([9c5e418](9c5e418872))
* enable token sign in with comma separated subs in myservers.config
([e9bd18a](e9bd18a409))
* error state outside of button
([a1cf441](a1cf44162a))
* error when nodejs download fails
([af1994c](af1994cb62))
* exit cli after running command
([5ca225f](5ca225fe7a))
* extensive file checking
([4d45caf](4d45caf258))
* extract node to usr/local/
([9a0d63d](9a0d63d4ee))
* fallback to local
([36d8399](36d8399045))
* faster failure logic
([1f5c642](1f5c6424c7))
* feature request template
([0c0a63b](0c0a63b525))
* fix docusaurus build + update snapshot
([7a19c93](7a19c9331f))
* fix missing flash line
([5f1a61d](5f1a61d4aa))
* fix pm2 setup and add link command
([caf797c](caf797cf4a))
* force linting on build
([ad32cff](ad32cffd75))
* generate key one time
([1435155](143515560c))
* glob for files
([0652114](065211413d))
* group renovate updates
([d7b138b](d7b138b2a7))
* hide sign in from the dropdown text
([ea6ae83](ea6ae83919))
* hypervisor async imports
([f1e5383](f1e53831c8))
* ignore generated code
([0e9c91a](0e9c91af86))
* ignore nuxt-custom-elements and reflect-metadata
([8590a49](8590a49402))
* improve packing
([3c61a61](3c61a615f0))
* initial patcher implementation using the diff tool
([805bc5b](805bc5bfc0))
* initial setup of permissions on keys
([#1068](https://github.com/unraid/api/issues/1068))
([a554bde](a554bde5c2))
* initial version of modification service
([bb37140](bb37140d40))
* inject after form
([e5d1146](e5d1146613))
* kill timeout extended
([0c6f44d](0c6f44da35))
* log size and only tar files
([a6f6706](a6f67060b4))
* logrotate test
([5b0971e](5b0971ea8d))
* lots of progress on colors
([c6547a5](c6547a51fc))
* major release-please workflow improvements
([#1160](https://github.com/unraid/api/issues/1160))
([013cc1d](013cc1de7d))
* manually install libvirt in build process to ensure it is included in
the final build
([cea11da](cea11daf15))
* more pm2 fixes
([4655d72](4655d72fbb))
* move fixtures into __test__ folder
([dfb006e](dfb006e696))
* move ssoenabled to a boolean flag rather than ids
([6f5edb2](6f5edb2406))
* move variable declarations to theme.ts
([00b8ffe](00b8ffe87d))
* myservers_fb keepalive location
([69441d8](69441d890e))
* name package with PR number
([cf72c8b](cf72c8b359))
* nuxt config simplification and formatting
([2903542](29035429bd))
* only write config when a specific config update action occurs
([29ca582](29ca5829ff))
* or button on sign in page
([11ff890](11ff890bcc))
* **plugin:** rm Date & Time format settings from Notification Settings
([acba0b0](acba0b0365))
* properly read log level from environment
([8a374b5](8a374b5b27))
* public index
([8cbb3c4](8cbb3c4718))
* remove apiKey from server
([895d585](895d5857f9))
* remove nghttp3 and only bundle nodejs
([bb555f8](bb555f8296))
* remove sso if disabled on Unraid-API start
([daf904b](daf904bc1b))
* remove sso user command
([f302924](f30292484d))
* remove sso user options
([75d7e08](75d7e08824))
* remove unused config sections
([03e336b](03e336b72f))
* remove unused fields
([2d3892d](2d3892deb8))
* remove unused vars
([6f9977e](6f9977eea0))
* rename api key resource back to api_key
([8827483](8827483699))
* rename modification file
([5d909a8](5d909a856b))
* reorder index
([a4b3f8c](a4b3f8c6c3))
* responsive notifications
([cead975](cead97560c))
* restart the API when an SSO user is added
([dae5738](dae57389c6))
* restoring sso error
([3042ffa](3042ffa37e))
* revert local api key value
([6bfd8a2](6bfd8a2687))
* rollback if patch exists before applying
([a12181a](a12181a5e0))
* secondary changes
([cbb42dc](cbb42dc85e))
* separate install process
([9bbab0f](9bbab0f86c))
* service tests for modifier service
([d6fa35c](d6fa35cdee))
* session issues
([8026ef5](8026ef53e8))
* set background color on webcomponents
([7ef3286](7ef3286191))
* shared call to createPatch
([073a515](073a51572a))
* sidebar notification count
([a4e2a77](a4e2a77410))
* simplify docs
([1e4a4f0](1e4a4f0745))
* sso button token exchange
([3abf20b](3abf20b347))
* sso login boolean
([81f051e](81f051e02c))
* sso testing page and form disable on submit
([09f7415](09f741557b))
* state using crypto
([3734730](3734730bf7))
* style improvements
([a8211ce](a8211cef7d))
* swap to async exit hook
([c7d4e39](c7d4e39287))
* switch to nest-commander
([7ceac1b](7ceac1b184))
* try catch restart
([55100da](55100daed4))
* **ui:** webgui-compatible web component library
([#1075](https://github.com/unraid/api/issues/1075))
([61ee689](61ee689658))
* unnecessary comment
([f560df0](f560df0270))
* unraid single sign on with account app
([2b25537](2b25537e26))
* unraid ui component library
([#976](https://github.com/unraid/api/issues/976))
([91de6e6](91de6e6c1e))
* update based on review feedback
([16f00a0](16f00a0d8c))
* update packageManager field for pnpm
([eec9785](eec9785ba1))
* Update
plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/include/state.php
([336478c](336478c2e0))
* upgrade dependencies
([46c82ec](46c82ecae3))
* upgrade workflow and auto-assign reviewers
([59e48ad](59e48ad85c))
* use execa for start and stop
([05e77a4](05e77a4bc6))
* use plugin file for install and uninstall
([bbf2807](bbf28075c6))
* use state passing to validate requests
([bd58490](bd584902e0))
* use text-secondary-foreground instead of gray
([7828ef2](7828ef2648))
* use zod to parse config
([02c197f](02c197f244))
* validate entries correctly
([a39da15](a39da15be4))
* validate token format in both PHP and CLI
([b9d9105](b9d9105e3e))
* viewport watch refactor
([9d2405b](9d2405bd21))
* warning on missing fields
([c1fe95f](c1fe95fcb6))
* **web:** activation modal steps, updated copy
([#1079](https://github.com/unraid/api/issues/1079))
([d8a5b17](d8a5b1711a))
* **web:** add an 'all' option to notification filter
([939d7a3](939d7a304d))
* **web:** add confirmation before archiving or deleting all
notifications
([4c663dc](4c663dc69c))
* **web:** add count labels to notification tabs
([78ec466](78ec4663cc))
* **web:** add delete all notifications button to archive view in
notifications sidebar
([89eb841](89eb841b20))
* **web:** add link to settings in notification sidebar
([7296195](7296195495))
* **web:** add loading and error states to notification sidebar
([060fb91](060fb91546))
* **web:** clear notifications indicator after opening sidebar
([be7135e](be7135efdd))
* **web:** enhance notifications indicator in UPC
([#950](https://github.com/unraid/api/issues/950))
([0b469f5](0b469f5b3f))
* **web:** improve notification count syncing
([#1148](https://github.com/unraid/api/issues/1148))
([7588e0e](7588e0e3cf))
* **web:** move notification indicator icons to top-right of bell icon
([99704a9](99704a9dbb))
* **web:** open official release notes via header os version
([7dcf947](7dcf947527))
* **web:** pull date format from display/date and time settings
([7c8e8a0](7c8e8a0e53))
* **web:** remove notification indicator pulse
([bc4708f](bc4708f405))
* **web:** rm api-key validation from connect sign in
([#986](https://github.com/unraid/api/issues/986))
([939383e](939383e4ef))
* **web:** rm old notification bell upon plugin installation
([#979](https://github.com/unraid/api/issues/979))
([478254e](478254e134))
* **web:** support markdown in notification messages
([abcaa5a](abcaa5aedb))
* **web:** use Markdown helper class to interact with markdown
([2f4ff21](2f4ff21986))
* work intent
([c519ba2](c519ba28e4))
* work intent process
([8374af8](8374af8ee8))
* zod config no longer any
([6faef27](6faef27d7c))


### Bug Fixes

* 12 hour timestamp logic corrected
([6cbb9c0](6cbb9c07e4))
* add another missing symlink
([477c113](477c113ce1))
* allow concurrent testing with a shared patcher instance
([c007898](c00789865c))
* **api:** append time to formatted date when a custom date format is
selected
([b9cd8c4](b9cd8c426d))
* **api:** change log output location for diagnostic compatibility
([#1130](https://github.com/unraid/api/issues/1130))
([9bc8060](9bc8060a83))
* **api:** delay pm2 start until server has booted
([3c27b51](3c27b51ab8))
* **api:** exclude duplicates from legacy script in archive retrieval
([9c38fa6](9c38fa6a9c))
* **api:** improve defaults in PM2 service
([#1116](https://github.com/unraid/api/issues/1116))
([a21f39d](a21f39d617))
* **api:** logrotate modification & permissions
([#1145](https://github.com/unraid/api/issues/1145))
([b970fd9](b970fd9e6c))
* **api:** make cookie recognition during websocket connection more
([2a82ea4](2a82ea4765))
* **api:** pm2 start script & limit auto restarts
([#1040](https://github.com/unraid/api/issues/1040))
([b53bb3f](b53bb3f197))
* **api:** retry mothership connection up to 3x before logout
([#1069](https://github.com/unraid/api/issues/1069))
([c163998](c163998175))
* **api:** sanitize incoming user session id's
([3b2d61e](3b2d61efc2))
* **api:** slow init of unraid-api cli
([#1022](https://github.com/unraid/api/issues/1022))
([f37dda1](f37dda16c2))
* **api:** update deploy-dev script to dist instead of src
([2327b00](2327b00d30))
* **api:** validate cookie session data
([fe98295](fe98295496))
* apply and rollback error handling
([76711be](76711be3e8))
* authorization type error
([#987](https://github.com/unraid/api/issues/987))
([5f0446f](5f0446fa79))
* back to default configs
([a1a046f](a1a046f900))
* backup restore formatting
([0cfdd5a](0cfdd5a61b))
* basic test fixed
([bddda82](bddda823e1))
* better js file handling
([bb92c3f](bb92c3f9f8))
* better loader functionality and error handling
([a502134](a502134c0a))
* check width before changing viewport
([e2a1f27](e2a1f27b22))
* chown correctly ([#1185](https://github.com/unraid/api/issues/1185))
([46a05eb](46a05eb76d))
* cleaner logs for starting API
([eb1c62d](eb1c62d3d9))
* cleanup commands
([ef82ec5](ef82ec5af5))
* clearer error messaging
([f8393ee](f8393eeebe))
* code review feedback
([e7b689c](e7b689c546))
* completion script registration
([e338eb9](e338eb9788))
* connect breaks default css of header
([#1155](https://github.com/unraid/api/issues/1155))
([fb24723](fb2472399a))
* connect key role
([eff6c32](eff6c32ccd))
* create api key for connect on startup
([69cd92f](69cd92f974))
* create api key permissions
([14fe30e](14fe30e925))
* create connect key
([d88b1e9](d88b1e9660))
* create PR ignored
([dabe334](dabe334072))
* create releases as drafts
([5483e9f](5483e9fee9))
* cwd on ecosystem.config.json
([3fc4148](3fc41480a2))
* dark theme as array
([77558a5](77558a5cd9))
* default overwrite false test
([62824ba](62824ba76f))
* delete .original files
([547ae18](547ae180dd))
* delete unused line
([3e8c101](3e8c101edd))
* deprecated version warning
([a892a3c](a892a3ce35))
* **deps:** update all non-major dependencies
([#1158](https://github.com/unraid/api/issues/1158))
([48df88f](48df88f5c1))
* **deps:** update all non-major dependencies
([#1168](https://github.com/unraid/api/issues/1168))
([248d211](248d211050))
* **deps:** update apollo graphql packages
([1f9e282](1f9e282880))
* **deps:** update dependency @apollo/client to v3.12.6
([c0d3cf5](c0d3cf5782))
* **deps:** update dependency @apollo/client to v3.12.6
([91a9949](91a9949a5c))
* **deps:** update dependency @apollo/client to v3.12.9
([5b14be6](5b14be6b0f))
* **deps:** update dependency @floating-ui/dom to v1.6.13
([64d3765](64d3765a9a))
* **deps:** update dependency @floating-ui/dom to v1.6.13
([5dc1375](5dc13755df))
* **deps:** update dependency @floating-ui/vue to v1.1.6
([6cb28d5](6cb28d5f8f))
* **deps:** update dependency @floating-ui/vue to v1.1.6
([e5e1c43](e5e1c43bb3))
* **deps:** update dependency @graphql-tools/load-files to v7.0.1
([5f597f9](5f597f9d4c))
* **deps:** update dependency @nestjs/schedule to v4.1.2
([806bd63](806bd633ac))
* **deps:** update dependency chokidar to v4.0.3
([74b3e29](74b3e29c74))
* **deps:** update dependency dockerode to v4
([#830](https://github.com/unraid/api/issues/830))
([c311a89](c311a89aee))
* **deps:** update dependency dotenv to v16.4.7
([b32f84b](b32f84b105))
* **deps:** update dependency execa to v9.5.2
([6c54fa1](6c54fa14b1))
* **deps:** update dependency express to v4.21.2
([a947ff1](a947ff14fa))
* **deps:** update dependency focus-trap to v7.6.4
([8475204](84752043e5))
* **deps:** update dependency focus-trap to v7.6.4
([5dfd6d5](5dfd6d5ded))
* **deps:** update dependency got to v14.4.5
([71e2b70](71e2b70678))
* **deps:** update dependency graphql-ws to v5.16.2
([c112f19](c112f19c95))
* **deps:** update dependency graphql-ws to v5.16.2
([4daa54c](4daa54cfb5))
* **deps:** update dependency ini to v4.1.3
([c817cc4](c817cc4b7e))
* **deps:** update dependency node-window-polyfill to v1.0.4
([61ec04c](61ec04cb87))
* **deps:** update dependency openid-client to v6.1.7
([7ef3729](7ef3729769))
* **deps:** update dependency p-retry to v6.2.1
([46a368e](46a368e1b5))
* **deps:** update dependency pm2 to v5.4.3
([e366cad](e366cad0a4))
* **deps:** update dependency radix-vue to v1.9.12
([83344e0](83344e05c1))
* **deps:** update dependency radix-vue to v1.9.13
([c180728](c180728696))
* **deps:** update dependency uuid to v11.0.5
([0331e24](0331e24a74))
* **deps:** update graphql-tools monorepo
([344b023](344b023503))
* **deps:** update graphqlcodegenerator monorepo
([2bc9af2](2bc9af2578))
* **deps:** update graphqlcodegenerator monorepo
([8675653](8675653e4e))
* **deps:** update nest monorepo to v10.4.15
([2b597f9](2b597f9f02))
* **deps:** update nest-graphql monorepo to v12.2.2
([bd31e09](bd31e09bcf))
* dev mode
([aae38e3](aae38e3404))
* do not process.exit on restart or stop command
([e16763b](e16763b49b))
* docs creation workflow
([13b501a](13b501a342))
* don't check code for execa
([f62f0d3](f62f0d3a0f))
* don't specify pnpm version in install
([30ba5be](30ba5befdb))
* dont remove login file without a backup presetn
([1854aa9](1854aa9f28))
* downgrade marked to fix changelog preview issue
([943c907](943c907d03))
* edit settings padding issue
([4e9ab64](4e9ab645e6))
* empty manifest and version alignment
([b07828d](b07828d655))
* ensure directory exists before making connect key
([a6cd74d](a6cd74dc5c))
* excess spacing in api-key.service
([286ffc5](286ffc54e5))
* extra log line
([b56b215](b56b2157fa))
* extra spacing in config.ts
([84f4f67](84f4f67ce1))
* file modification service fixes
([e4ebfc8](e4ebfc8a13))
* finalize workflow fixes
([616be93](616be93be9))
* find by key, not ID
([124fb61](124fb610b1))
* fix libvirt bindings
([#1167](https://github.com/unraid/api/issues/1167))
([024719f](024719fa7a))
* format authrequest mod as other files
([8b75d6c](8b75d6cc99))
* formatting issue
([0042f14](0042f14ab3))
* further resolve sso sub ids issues
([b3551a1](b3551a1b69))
* improve typing and format lookup
([dfa27e2](dfa27e2c0d))
* initial feedback about report addressed
([060a199](060a1992c4))
* install as-integrations/fastify
([2fce2e9](2fce2e9a28))
* install syntax error
([a355a64](a355a64136))
* integration of `unraid-ui` tailwind config in `web`
([#1074](https://github.com/unraid/api/issues/1074))
([3acc0dc](3acc0dc9c0))
* length
([8481c9a](8481c9a9fb))
* lint
([133c8e0](133c8e0d70))
* lint
([42610d2](42610d290d))
* lint
([b1a993a](b1a993a8e9))
* lint
([6beafbe](6beafbe8ed))
* lint
([d38f3ef](d38f3ef49b))
* logrotate error
([7a009b6](7a009b6be7))
* lowercase or
([29a8689](29a8689ad8))
* main.yml release issue
([2b1e307](2b1e3076b0))
* make public not a part of folder structure in PR
([84611d7](84611d7691))
* marked single input
([d28fb24](d28fb24d68))
* missing server type
([76cf6f3](76cf6f35dc))
* mock ensureDirSync
([14abc13](14abc13cc8))
* more color work
([9a869a4](9a869a49e3))
* more generic test
([ddfc36f](ddfc36fd73))
* more verbose logging for node install to find issues
([c3f4cf5](c3f4cf53c1))
* oauth2 api prefix
([56cfa84](56cfa84794))
* only instantiate service one time
([b1b93e2](b1b93e2783))
* only run release if releases_create == 'true'
([00a444f](00a444fb92))
* only toast unread notifications, not archived ones
([8251c6f](8251c6f2d3))
* padding and glob function issues
([ae753d6](ae753d6bea))
* pass ssoSubIds only
([76a9ae9](76a9ae9386))
* pass token to password field
([9279931](92799312c9))
* patch-utils unused
([1d5c2c8](1d5c2c8338))
* paths now correct, better download logic
([9e12407](9e12407565))
* PHP Warning in state.php
([#1126](https://github.com/unraid/api/issues/1126))
([59d6c1b](59d6c1b678))
* properly log error with template string
([2ad612c](2ad612cef8))
* pull token from query not params
([1756cc5](1756cc5b4b))
* re-add manifest
([e721299](e72129953e))
* re-add type-check
([0fa41f5](0fa41f5690))
* recreate package-lock to fix issues
([e1515a1](e1515a118a))
* release-please upload single draft
([db134f0](db134f091d))
* remove console log
([d8f9f03](d8f9f03146))
* remove devDependencies from output package json
([d847815](d8478152e9))
* remove extra space
([000692c](000692ca50))
* remove isNaN in favor of number.isNaN
([e33c758](e33c7583f7))
* remove line from or in button
([961bcc5](961bcc5db6))
* remove memory key generation
([e58410b](e58410bd57))
* remove unused constructor
([ce92cb0](ce92cb06b7))
* remove unused date-fns
([0c1b89f](0c1b89ff41))
* remove unused login entries
([942b143](942b143fba))
* remove usage of Role.UPC
([ceac626](ceac6269b3))
* render function fixed
([833a99f](833a99fe18))
* report issues + pm2 issues
([4b3d6a7](4b3d6a7ba3))
* reset config to be closer to default
([d844903](d844903d78))
* resource busy when removing all subdirectories
([7b3834c](7b3834ca1f))
* restart command elegant
([b924954](b9249544fc))
* restore upgradepkg before install
([8f58145](8f5814589e))
* revert changelog
([efa7db3](efa7db3db6))
* revert changes to indicator.vue
([11ce9e2](11ce9e2644))
* revert config
([7957c2a](7957c2a681))
* revert dockerode upgrade
([#1140](https://github.com/unraid/api/issues/1140))
([2b163b3](2b163b361a))
* revert myservers.cfg
([7e5dd07](7e5dd07d4a))
* sandbox defaults in dev mode wrong
([d26ddef](d26ddef33e))
* sequential test execution for generic-modification
([9d1442b](9d1442b2ee))
* shell path to unraid-api
([44d3d93](44d3d939a7))
* shorten work intent form
([5b2403a](5b2403ad04))
* simplify api setup index
([5f29e6d](5f29e6d5e7))
* simplify upcoming features
([608151d](608151d84c))
* small modal window
([#1183](https://github.com/unraid/api/issues/1183))
([08423b8](08423b8dae))
* staging build issues
([63fcde8](63fcde8243))
* start command simplification
([27049d9](27049d9d91))
* stop command exits
([58f65ea](58f65eabba))
* storybook resolution issue
([#1153](https://github.com/unraid/api/issues/1153))
([5a3e8df](5a3e8df003))
* strip components from tar line
([bad7f71](bad7f71fea))
* swap to placeholder key
([39612cd](39612cd978))
* switch to useToggle
([5f8602b](5f8602b864))
* test issues
([4d8f2dd](4d8f2ddac6))
* test simplification to ensure no redownloads
([5347d54](5347d54b11))
* tests
([ed18945](ed18945088))
* tests and validate token clears screen
([6c46f94](6c46f9413f))
* theme store now uses singular variables object
([116efe6](116efe6f72))
* thorw on invalid token body
([1e6fb7e](1e6fb7e3e3))
* type error on element render
([45327ce](45327ce01d))
* type for generic test
([0163acb](0163acb7f3))
* unit test issues
([74b9fd0](74b9fd0159))
* unit tests updated
([0ab40fe](0ab40fefda))
* unneeded await on api-key service
([923e929](923e929878))
* unused imports
([0cb0fc9](0cb0fc9881))
* upc header text color
([d23a389](d23a38960b))
* Update renovate.json
([c47a655](c47a655b45))
* update tests
([b1ac0f9](b1ac0f9c83))
* upgradepkg
([6962cdd](6962cdd214))
* upload to correct tag directory on build
([f76c0f0](f76c0f05fb))
* upload to release by name
([2283e06](2283e064d5))
* use an enum and defaults for sandbox value
([2108ed0](2108ed0ecd))
* use batchProcess
([3c357e7](3c357e7e95))
* use cwd when running application
([e27776d](e27776df3d))
* use foreground text color for UPC
([d5f5921](d5f5921534))
* use placeholder in test API key
([5d72b5a](5d72b5a970))
* watch all events to load keys
([ff63535](ff63535b00))
* **web:** broken modals
([19208e5](19208e5fab))
* **web:** display error message in sidebar when api is offline
([#984](https://github.com/unraid/api/issues/984))
([4a29fc9](4a29fc9dda))
* **web:** edge case where archived notifications don't appear
([e40a9eb](e40a9ebecd))
* **web:** env var typo
([dffbfc2](dffbfc2dab))
* **web:** escaping html-encoded symbols like apostrophes in
translations ([#1002](https://github.com/unraid/api/issues/1002))
([4ee42a6](4ee42a6cf6))
* **web:** flash of disconnected api state on page load
([d0819b8](d0819b8d02))
* **web:** infinite scroll loop when there's only 1 page of
notifications
([eeb3289](eeb3289ae8))
* **web:** infinite trigger at bottom of infinite scroll
([001be86](001be86181))
* **web:** name of toaster component
([93980f9](93980f929d))
* **web:** notification styles & alignment
([#968](https://github.com/unraid/api/issues/968))
([547b75a](547b75a55e))
* **web:** refetch notifications for sidebar when new notifications
arrive
([23b1f1a](23b1f1ac73))
* **web:** remove warn and error console log removal
([#1086](https://github.com/unraid/api/issues/1086))
([e7d15ee](e7d15ee5ec))
* **web:** replaces dompurify with isomorphic-dompurify to enable
server-side usage with same syntax
([2724485](2724485989))
* **web:** reset infinite scroll when notification filters change
([3fe13d5](3fe13d5235))
* **web:** sanitize changelog markup after parsing
([83e00c6](83e00c640a))
* **web:** stop opening notification sidebar to archive tab
([ecfc797](ecfc797e7d))
* **web:** theme header differences
([#1085](https://github.com/unraid/api/issues/1085))
([1ecac5e](1ecac5ee4e))
* **web:** track 'notification seen' state across tabs & page loads
([#1121](https://github.com/unraid/api/issues/1121))
([321703e](321703e907))
* **web:** update unread total immediately upon archiving
([#982](https://github.com/unraid/api/issues/982))
([29d9371](29d9371cc3))


### Miscellaneous Chores

* release 4.1.2
([2323ee6](2323ee6838))

---
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-02-21 15:35:35 -05:00
github-actions[bot]
950bee951e chore(main): release 4.1.3 (#1178)
# Hotfix Release Feb 21, 2025

### Bug Fixes

* fix ssh issues
* fix issues with uninstalling the plugin
2025-02-21 15:17:46 -05:00
Eli Bosley
46a05eb76d fix: chown correctly (#1185)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Chores**
- Updated the approach to managing directory ownership for improved
consistency across various environments.
- Enhanced error handling in directory permission and ownership
commands.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-21 15:14:15 -05:00
Eli Bosley
364eb62726 fix/plugin-always-restores (#1184)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Enhanced the plugin uninstallation process to ensure that system files
are properly restored during removal. This update uses a temporary flag
to trigger restoration only when needed and cleans up afterward,
ensuring a smooth and reliable uninstallation experience.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-21 14:12:21 -05:00
github-actions[bot]
d5e607797a chore: release main 4.1.2 (#1174) 2025-02-20 19:29:50 -05:00
Eli Bosley
050f7f74ef Revert "chore: release main 4.1.2 (#1173)"
This reverts commit 0f131d4a95.
2025-02-20 19:26:01 -05:00
github-actions[bot]
0f131d4a95 chore: release main 4.1.2 (#1173) 2025-02-20 19:16:54 -05:00
Eli Bosley
b74ec6b5c6 chore: revert changelog again 2025-02-20 19:12:39 -05:00
github-actions[bot]
64b20c9b95 chore: release main 4.1.2 (#1170) 2025-02-20 19:04:54 -05:00
Eli Bosley
efa7db3db6 fix: revert changelog 2025-02-20 19:00:27 -05:00
github-actions[bot]
3ccf7d6e02 chore: release main (#1157)
🤖 I have created a release *beep* *boop*
---


<details><summary>4.1.2</summary>

## 4.1.2 (2025-02-20)


### Features

* add api key creation logic
([a1351b0](a1351b0469))
* add category.json
([e784391](e784391ac3))
* add command to package.json scripts
([3348a47](3348a47470))
* add csrf support to api & web components
([#999](https://github.com/unraid/api/issues/999))
([f0f5a30](f0f5a3057a))
* add description flag, remove console log, and update readme
([85cdb8f](85cdb8f525))
* add developer docs
([#1128](https://github.com/unraid/api/issues/1128))
([75474bd](75474bde47))
* add line about recommendation for sso command
([b63720a](b63720a6f2))
* add log rotation
([b1d9ad7](b1d9ad7ef1))
* add logging around fixture downloads
([fa16dcd](fa16dcd801))
* add logrotate cron again
([097415f](097415f6b8))
* add patch for auth-request.php
([b1a1779](b1a1779a8b))
* add user with cli
([cb59090](cb59090698))
* address log level feedback
([bb95795](bb95795a31))
* allow csrf passing through querystring
([3a8c9b1](3a8c9b13ee))
* allow deletion and creation of files with patches
([1392bde](1392bdeecb))
* always ensureDirectory for keys exists
([8b93bce](8b93bcea08))
* **api:** graphql sandbox on unraid servers
([#1047](https://github.com/unraid/api/issues/1047))
([5dd36d1](5dd36d1836))
* **api:** omit tz from sys time date format by default
([c36082e](c36082e82b))
* **api:** rm 2fa & t2fa from myservers config type
([#996](https://github.com/unraid/api/issues/996))
([f45719f](f45719fa6b))
* async disk mapping
([f22b262](f22b262830))
* async hypervisor and FIXED vm listing
([cdfb3c7](cdfb3c772b))
* auto-docusaurus-prs
([#1127](https://github.com/unraid/api/issues/1127))
([8a57576](8a575765a9))
* begin building plugin with node instead of bash
([#1120](https://github.com/unraid/api/issues/1120))
([4f5c367](4f5c367fdf))
* better patch application
([445f3b5](445f3b50b1))
* better pm2 calls, log lines
([33dd90a](33dd90af04))
* cleanup config entries
([c2e29df](c2e29dfb5f))
* cleanup disclaimer and command to add users
([3867dfa](3867dfacb2))
* cli Commands
([7fa849d](7fa849d2a0))
* CLI options for adding and deleting users
([bc04129](bc04129342))
* coderabbit suggestion
([3cc3f27](3cc3f27dae))
* configure PM2 on startup
([b73623e](b73623e72a))
* convert to pnpm monorepo
([#1137](https://github.com/unraid/api/issues/1137))
([ad6b658](ad6b6589db))
* create key cli command logic and add to index command list
([796cb09](796cb09c61))
* csv validation
([89d756e](89d756ef4e))
* default value for option
([632775e](632775e435))
* disable casbin logging
([aa1ef1b](aa1ef1bd4c))
* docstrings
([935318d](935318dda6))
* dont pass entire server state for privacy
([b969f3a](b969f3a9ab))
* download fixtures from the web
([05f661e](05f661e0e5))
* enable sandbox in dev mode
([21208bf](21208bfcf6))
* enable sandbox with developer command
([9c5e418](9c5e418872))
* enable token sign in with comma separated subs in myservers.config
([e9bd18a](e9bd18a409))
* exit cli after running command
([5ca225f](5ca225fe7a))
* extensive file checking
([4d45caf](4d45caf258))
* fallback to local
([36d8399](36d8399045))
* faster failure logic
([1f5c642](1f5c6424c7))
* fix docusaurus build + update snapshot
([7a19c93](7a19c9331f))
* force linting on build
([ad32cff](ad32cffd75))
* generate key one time
([1435155](143515560c))
* glob for files
([0652114](065211413d))
* hypervisor async imports
([f1e5383](f1e53831c8))
* ignore generated code
([0e9c91a](0e9c91af86))
* improve packing
([3c61a61](3c61a615f0))
* initial patcher implementation using the diff tool
([805bc5b](805bc5bfc0))
* initial setup of permissions on keys
([#1068](https://github.com/unraid/api/issues/1068))
([a554bde](a554bde5c2))
* initial version of modification service
([bb37140](bb37140d40))
* inject after form
([e5d1146](e5d1146613))
* kill timeout extended
([0c6f44d](0c6f44da35))
* log size and only tar files
([a6f6706](a6f67060b4))
* logrotate test
([5b0971e](5b0971ea8d))
* manually install libvirt in build process to ensure it is included in
the final build
([cea11da](cea11daf15))
* more pm2 fixes
([4655d72](4655d72fbb))
* move fixtures into __test__ folder
([dfb006e](dfb006e696))
* myservers_fb keepalive location
([69441d8](69441d890e))
* only write config when a specific config update action occurs
([29ca582](29ca5829ff))
* properly read log level from environment
([8a374b5](8a374b5b27))
* public index
([8cbb3c4](8cbb3c4718))
* remove sso if disabled on Unraid-API start
([daf904b](daf904bc1b))
* remove sso user command
([f302924](f30292484d))
* remove sso user options
([75d7e08](75d7e08824))
* remove unused config sections
([03e336b](03e336b72f))
* remove unused fields
([2d3892d](2d3892deb8))
* remove unused vars
([6f9977e](6f9977eea0))
* rename api key resource back to api_key
([8827483](8827483699))
* rename modification file
([5d909a8](5d909a856b))
* reorder index
([a4b3f8c](a4b3f8c6c3))
* restart the API when an SSO user is added
([dae5738](dae57389c6))
* restoring sso error
([3042ffa](3042ffa37e))
* revert local api key value
([6bfd8a2](6bfd8a2687))
* rollback if patch exists before applying
([a12181a](a12181a5e0))
* secondary changes
([cbb42dc](cbb42dc85e))
* service tests for modifier service
([d6fa35c](d6fa35cdee))
* session issues
([8026ef5](8026ef53e8))
* shared call to createPatch
([073a515](073a51572a))
* simplify docs
([1e4a4f0](1e4a4f0745))
* style improvements
([a8211ce](a8211cef7d))
* swap to async exit hook
([c7d4e39](c7d4e39287))
* switch to nest-commander
([7ceac1b](7ceac1b184))
* try catch restart
([55100da](55100daed4))
* **ui:** webgui-compatible web component library
([#1075](https://github.com/unraid/api/issues/1075))
([61ee689](61ee689658))
* unnecessary comment
([f560df0](f560df0270))
* unraid single sign on with account app
([2b25537](2b25537e26))
* update packageManager field for pnpm
([eec9785](eec9785ba1))
* upgrade dependencies
([46c82ec](46c82ecae3))
* use execa for start and stop
([05e77a4](05e77a4bc6))
* use zod to parse config
([02c197f](02c197f244))
* validate token format in both PHP and CLI
([b9d9105](b9d9105e3e))
* **web:** add delete all notifications button to archive view in
notifications sidebar
([89eb841](89eb841b20))
* **web:** enhance notifications indicator in UPC
([#950](https://github.com/unraid/api/issues/950))
([0b469f5](0b469f5b3f))
* **web:** pull date format from display/date and time settings
([7c8e8a0](7c8e8a0e53))
* **web:** rm api-key validation from connect sign in
([#986](https://github.com/unraid/api/issues/986))
([939383e](939383e4ef))
* zod config no longer any
([6faef27](6faef27d7c))


### Bug Fixes

* allow concurrent testing with a shared patcher instance
([c007898](c00789865c))
* **api:** append time to formatted date when a custom date format is
selected
([b9cd8c4](b9cd8c426d))
* **api:** change log output location for diagnostic compatibility
([#1130](https://github.com/unraid/api/issues/1130))
([9bc8060](9bc8060a83))
* **api:** delay pm2 start until server has booted
([3c27b51](3c27b51ab8))
* **api:** exclude duplicates from legacy script in archive retrieval
([9c38fa6](9c38fa6a9c))
* **api:** improve defaults in PM2 service
([#1116](https://github.com/unraid/api/issues/1116))
([a21f39d](a21f39d617))
* **api:** logrotate modification & permissions
([#1145](https://github.com/unraid/api/issues/1145))
([b970fd9](b970fd9e6c))
* **api:** make cookie recognition during websocket connection more
([2a82ea4](2a82ea4765))
* **api:** pm2 start script & limit auto restarts
([#1040](https://github.com/unraid/api/issues/1040))
([b53bb3f](b53bb3f197))
* **api:** retry mothership connection up to 3x before logout
([#1069](https://github.com/unraid/api/issues/1069))
([c163998](c163998175))
* **api:** sanitize incoming user session id's
([3b2d61e](3b2d61efc2))
* **api:** slow init of unraid-api cli
([#1022](https://github.com/unraid/api/issues/1022))
([f37dda1](f37dda16c2))
* **api:** update deploy-dev script to dist instead of src
([2327b00](2327b00d30))
* **api:** validate cookie session data
([fe98295](fe98295496))
* apply and rollback error handling
([76711be](76711be3e8))
* authorization type error
([#987](https://github.com/unraid/api/issues/987))
([5f0446f](5f0446fa79))
* back to default configs
([a1a046f](a1a046f900))
* backup restore formatting
([0cfdd5a](0cfdd5a61b))
* basic test fixed
([bddda82](bddda823e1))
* better js file handling
([bb92c3f](bb92c3f9f8))
* better loader functionality and error handling
([a502134](a502134c0a))
* better logging when error
([972a19b](972a19be04))
* cleaner logs for starting API
([eb1c62d](eb1c62d3d9))
* clearer error messaging
([f8393ee](f8393eeebe))
* code review feedback
([e7b689c](e7b689c546))
* completion script registration
([e338eb9](e338eb9788))
* connect key role
([eff6c32](eff6c32ccd))
* create api key for connect on startup
([69cd92f](69cd92f974))
* create api key permissions
([14fe30e](14fe30e925))
* create connect key
([d88b1e9](d88b1e9660))
* cwd on ecosystem.config.json
([3fc4148](3fc41480a2))
* default overwrite false test
([62824ba](62824ba76f))
* delete .original files
([547ae18](547ae180dd))
* deprecated version warning
([a892a3c](a892a3ce35))
* **deps:** update all non-major dependencies
([#1158](https://github.com/unraid/api/issues/1158))
([48df88f](48df88f5c1))
* **deps:** update apollo graphql packages
([1f9e282](1f9e282880))
* **deps:** update dependency @apollo/client to v3.12.6
([91a9949](91a9949a5c))
* **deps:** update dependency @apollo/client to v3.12.9
([5b14be6](5b14be6b0f))
* **deps:** update dependency @graphql-tools/load-files to v7.0.1
([5f597f9](5f597f9d4c))
* **deps:** update dependency @nestjs/schedule to v4.1.2
([806bd63](806bd633ac))
* **deps:** update dependency chokidar to v4.0.3
([74b3e29](74b3e29c74))
* **deps:** update dependency dockerode to v4
([#830](https://github.com/unraid/api/issues/830))
([c311a89](c311a89aee))
* **deps:** update dependency dotenv to v16.4.7
([b32f84b](b32f84b105))
* **deps:** update dependency execa to v9.5.2
([6c54fa1](6c54fa14b1))
* **deps:** update dependency express to v4.21.2
([a947ff1](a947ff14fa))
* **deps:** update dependency got to v14.4.5
([71e2b70](71e2b70678))
* **deps:** update dependency graphql-ws to v5.16.2
([4daa54c](4daa54cfb5))
* **deps:** update dependency ini to v4.1.3
([c817cc4](c817cc4b7e))
* **deps:** update dependency node-window-polyfill to v1.0.4
([61ec04c](61ec04cb87))
* **deps:** update dependency openid-client to v6.1.7
([7ef3729](7ef3729769))
* **deps:** update dependency p-retry to v6.2.1
([46a368e](46a368e1b5))
* **deps:** update dependency pm2 to v5.4.3
([e366cad](e366cad0a4))
* **deps:** update dependency uuid to v11.0.5
([0331e24](0331e24a74))
* **deps:** update graphql-tools monorepo
([344b023](344b023503))
* **deps:** update graphqlcodegenerator monorepo
([2bc9af2](2bc9af2578))
* **deps:** update graphqlcodegenerator monorepo
([8675653](8675653e4e))
* **deps:** update nest monorepo to v10.4.15
([2b597f9](2b597f9f02))
* **deps:** update nest-graphql monorepo to v12.2.2
([bd31e09](bd31e09bcf))
* do not process.exit on restart or stop command
([e16763b](e16763b49b))
* don't check code for execa
([f62f0d3](f62f0d3a0f))
* dont remove login file without a backup presetn
([1854aa9](1854aa9f28))
* ensure directory exists before making connect key
([a6cd74d](a6cd74dc5c))
* excess spacing in api-key.service
([286ffc5](286ffc54e5))
* extra log line
([b56b215](b56b2157fa))
* extra spacing in config.ts
([84f4f67](84f4f67ce1))
* file modification service fixes
([e4ebfc8](e4ebfc8a13))
* find by key, not ID
([124fb61](124fb610b1))
* fix libvirt bindings
([#1167](https://github.com/unraid/api/issues/1167))
([024719f](024719fa7a))
* forced restarting on commands
([abd8e09](abd8e09908))
* format authrequest mod as other files
([8b75d6c](8b75d6cc99))
* initial feedback about report addressed
([060a199](060a1992c4))
* install as-integrations/fastify
([2fce2e9](2fce2e9a28))
* length
([8481c9a](8481c9a9fb))
* lint
([133c8e0](133c8e0d70))
* lint
([42610d2](42610d290d))
* lint
([b1a993a](b1a993a8e9))
* lint
([6beafbe](6beafbe8ed))
* lint
([d38f3ef](d38f3ef49b))
* logrotate error
([7a009b6](7a009b6be7))
* mock ensureDirSync
([14abc13](14abc13cc8))
* more generic test
([ddfc36f](ddfc36fd73))
* only instantiate service one time
([b1b93e2](b1b93e2783))
* only toast unread notifications, not archived ones
([8251c6f](8251c6f2d3))
* padding and glob function issues
([ae753d6](ae753d6bea))
* patch-utils unused
([1d5c2c8](1d5c2c8338))
* paths now correct, better download logic
([9e12407](9e12407565))
* properly log error with template string
([2ad612c](2ad612cef8))
* pull token from query not params
([1756cc5](1756cc5b4b))
* remove devDependencies from output package json
([d847815](d8478152e9))
* remove isNaN in favor of number.isNaN
([e33c758](e33c7583f7))
* remove memory key generation
([e58410b](e58410bd57))
* remove uneeded env variable
([c8da8fe](c8da8fe314))
* remove unused constructor
([ce92cb0](ce92cb06b7))
* remove usage of Role.UPC
([ceac626](ceac6269b3))
* report issues + pm2 issues
([4b3d6a7](4b3d6a7ba3))
* reset config to be closer to default
([d844903](d844903d78))
* resource busy when removing all subdirectories
([7b3834c](7b3834ca1f))
* restart command elegant
([b924954](b9249544fc))
* revert dockerode upgrade
([#1140](https://github.com/unraid/api/issues/1140))
([2b163b3](2b163b361a))
* revert myservers.cfg
([7e5dd07](7e5dd07d4a))
* sandbox defaults in dev mode wrong
([d26ddef](d26ddef33e))
* sequential test execution for generic-modification
([9d1442b](9d1442b2ee))
* shell path to unraid-api
([44d3d93](44d3d939a7))
* simplify api setup index
([5f29e6d](5f29e6d5e7))
* simplify upcoming features
([608151d](608151d84c))
* staging build issues
([63fcde8](63fcde8243))
* start command simplification
([27049d9](27049d9d91))
* stop command exits
([58f65ea](58f65eabba))
* swap to placeholder key
([39612cd](39612cd978))
* test issues
([4d8f2dd](4d8f2ddac6))
* test simplification to ensure no redownloads
([5347d54](5347d54b11))
* tests
([ed18945](ed18945088))
* tests and validate token clears screen
([6c46f94](6c46f9413f))
* type for generic test
([0163acb](0163acb7f3))
* unit test issues
([74b9fd0](74b9fd0159))
* unit tests updated
([0ab40fe](0ab40fefda))
* unneeded await on api-key service
([923e929](923e929878))
* unused imports
([0cb0fc9](0cb0fc9881))
* update tests
([b1ac0f9](b1ac0f9c83))
* use an enum and defaults for sandbox value
([2108ed0](2108ed0ecd))
* use batchProcess
([3c357e7](3c357e7e95))
* use cwd when running application
([e27776d](e27776df3d))
* use placeholder in test API key
([5d72b5a](5d72b5a970))
* watch all events to load keys
([ff63535](ff63535b00))
* **web:** name of toaster component
([93980f9](93980f929d))


### Miscellaneous Chores

* release 4.1.2
([2323ee6](2323ee6838))
</details>

<details><summary>4.1.2</summary>

## 4.1.2 (2025-02-20)


### Features

* add csrf support to api & web components
([#999](https://github.com/unraid/api/issues/999))
([f0f5a30](f0f5a3057a))
* allow csrf passing through querystring
([3a8c9b1](3a8c9b13ee))
* automatic session setup for dev
([e885936](e88593620b))
* back to callbackUrl
([428ad15](428ad15ec7))
* begin fixing dark mode in the webcomponents
([2443561](24435613f8))
* begin nuking alpha beta gamma
([cb91fbb](cb91fbb054))
* convert to pnpm monorepo
([#1137](https://github.com/unraid/api/issues/1137))
([ad6b658](ad6b6589db))
* delete unused imports
([0d6a003](0d6a0035aa))
* disable button on submit
([0da77d7](0da77d7119))
* dont pass entire server state for privacy
([b969f3a](b969f3a9ab))
* eliminate all alpha beta gamma variable usage
([4eda099](4eda0991d6))
* error state outside of button
([a1cf441](a1cf44162a))
* hide sign in from the dropdown text
([ea6ae83](ea6ae83919))
* lots of progress on colors
([c6547a5](c6547a51fc))
* move ssoenabled to a boolean flag rather than ids
([6f5edb2](6f5edb2406))
* move variable declarations to theme.ts
([00b8ffe](00b8ffe87d))
* nuxt config simplification and formatting
([2903542](29035429bd))
* or button on sign in page
([11ff890](11ff890bcc))
* remove apiKey from server
([895d585](895d5857f9))
* remove sso if disabled on Unraid-API start
([daf904b](daf904bc1b))
* responsive notifications
([cead975](cead97560c))
* set background color on webcomponents
([7ef3286](7ef3286191))
* sidebar notification count
([a4e2a77](a4e2a77410))
* sso button token exchange
([3abf20b](3abf20b347))
* sso testing page and form disable on submit
([09f7415](09f741557b))
* state using crypto
([3734730](3734730bf7))
* style improvements
([a8211ce](a8211cef7d))
* **ui:** webgui-compatible web component library
([#1075](https://github.com/unraid/api/issues/1075))
([61ee689](61ee689658))
* unraid single sign on with account app
([2b25537](2b25537e26))
* unraid ui component library
([#976](https://github.com/unraid/api/issues/976))
([91de6e6](91de6e6c1e))
* update based on review feedback
([16f00a0](16f00a0d8c))
* update packageManager field for pnpm
([eec9785](eec9785ba1))
* use state passing to validate requests
([bd58490](bd584902e0))
* use text-secondary-foreground instead of gray
([7828ef2](7828ef2648))
* viewport watch refactor
([9d2405b](9d2405bd21))
* warning on missing fields
([c1fe95f](c1fe95fcb6))
* **web:** activation modal steps, updated copy
([#1079](https://github.com/unraid/api/issues/1079))
([d8a5b17](d8a5b1711a))
* **web:** add an 'all' option to notification filter
([939d7a3](939d7a304d))
* **web:** add confirmation before archiving or deleting all
notifications
([4c663dc](4c663dc69c))
* **web:** add count labels to notification tabs
([78ec466](78ec4663cc))
* **web:** add delete all notifications button to archive view in
notifications sidebar
([89eb841](89eb841b20))
* **web:** add link to settings in notification sidebar
([7296195](7296195495))
* **web:** add loading and error states to notification sidebar
([060fb91](060fb91546))
* **web:** clear notifications indicator after opening sidebar
([be7135e](be7135efdd))
* **web:** enhance notifications indicator in UPC
([#950](https://github.com/unraid/api/issues/950))
([0b469f5](0b469f5b3f))
* **web:** improve notification count syncing
([#1148](https://github.com/unraid/api/issues/1148))
([7588e0e](7588e0e3cf))
* **web:** move notification indicator icons to top-right of bell icon
([99704a9](99704a9dbb))
* **web:** open official release notes via header os version
([7dcf947](7dcf947527))
* **web:** pull date format from display/date and time settings
([7c8e8a0](7c8e8a0e53))
* **web:** remove notification indicator pulse
([bc4708f](bc4708f405))
* **web:** support markdown in notification messages
([abcaa5a](abcaa5aedb))
* **web:** use Markdown helper class to interact with markdown
([2f4ff21](2f4ff21986))


### Bug Fixes

* 12 hour timestamp logic corrected
([6cbb9c0](6cbb9c07e4))
* **api:** make cookie recognition during websocket connection more
([2a82ea4](2a82ea4765))
* authorization type error
([#987](https://github.com/unraid/api/issues/987))
([5f0446f](5f0446fa79))
* check width before changing viewport
([e2a1f27](e2a1f27b22))
* connect breaks default css of header
([#1155](https://github.com/unraid/api/issues/1155))
([fb24723](fb2472399a))
* dark theme as array
([77558a5](77558a5cd9))
* **deps:** update all non-major dependencies
([#1158](https://github.com/unraid/api/issues/1158))
([48df88f](48df88f5c1))
* **deps:** update apollo graphql packages
([1f9e282](1f9e282880))
* **deps:** update dependency @apollo/client to v3.12.6
([c0d3cf5](c0d3cf5782))
* **deps:** update dependency @apollo/client to v3.12.6
([91a9949](91a9949a5c))
* **deps:** update dependency @apollo/client to v3.12.9
([5b14be6](5b14be6b0f))
* **deps:** update dependency @floating-ui/dom to v1.6.13
([64d3765](64d3765a9a))
* **deps:** update dependency @floating-ui/dom to v1.6.13
([5dc1375](5dc13755df))
* **deps:** update dependency @floating-ui/vue to v1.1.6
([6cb28d5](6cb28d5f8f))
* **deps:** update dependency @floating-ui/vue to v1.1.6
([e5e1c43](e5e1c43bb3))
* **deps:** update dependency focus-trap to v7.6.4
([8475204](84752043e5))
* **deps:** update dependency focus-trap to v7.6.4
([5dfd6d5](5dfd6d5ded))
* **deps:** update dependency graphql-ws to v5.16.2
([c112f19](c112f19c95))
* **deps:** update dependency graphql-ws to v5.16.2
([4daa54c](4daa54cfb5))
* **deps:** update dependency radix-vue to v1.9.12
([83344e0](83344e05c1))
* **deps:** update dependency radix-vue to v1.9.13
([c180728](c180728696))
* **deps:** update graphqlcodegenerator monorepo
([2bc9af2](2bc9af2578))
* dev mode
([aae38e3](aae38e3404))
* downgrade marked to fix changelog preview issue
([943c907](943c907d03))
* edit settings padding issue
([4e9ab64](4e9ab645e6))
* empty manifest and version alignment
([b07828d](b07828d655))
* further resolve sso sub ids issues
([b3551a1](b3551a1b69))
* improve typing and format lookup
([dfa27e2](dfa27e2c0d))
* integration of `unraid-ui` tailwind config in `web`
([#1074](https://github.com/unraid/api/issues/1074))
([3acc0dc](3acc0dc9c0))
* lowercase or
([29a8689](29a8689ad8))
* marked single input
([d28fb24](d28fb24d68))
* missing server type
([76cf6f3](76cf6f35dc))
* more color work
([9a869a4](9a869a49e3))
* oauth2 api prefix
([56cfa84](56cfa84794))
* only toast unread notifications, not archived ones
([8251c6f](8251c6f2d3))
* padding and glob function issues
([ae753d6](ae753d6bea))
* pass token to password field
([9279931](92799312c9))
* re-add type-check
([0fa41f5](0fa41f5690))
* recreate package-lock to fix issues
([e1515a1](e1515a118a))
* remove console log
([d8f9f03](d8f9f03146))
* remove extra space
([000692c](000692ca50))
* remove line from or in button
([961bcc5](961bcc5db6))
* remove unused date-fns
([0c1b89f](0c1b89ff41))
* remove unused login entries
([942b143](942b143fba))
* render function fixed
([833a99f](833a99fe18))
* revert changes to indicator.vue
([11ce9e2](11ce9e2644))
* switch to useToggle
([5f8602b](5f8602b864))
* theme store now uses singular variables object
([116efe6](116efe6f72))
* thorw on invalid token body
([1e6fb7e](1e6fb7e3e3))
* type error on element render
([45327ce](45327ce01d))
* upc header text color
([d23a389](d23a38960b))
* use foreground text color for UPC
([d5f5921](d5f5921534))
* **web:** broken modals
([19208e5](19208e5fab))
* **web:** display error message in sidebar when api is offline
([#984](https://github.com/unraid/api/issues/984))
([4a29fc9](4a29fc9dda))
* **web:** edge case where archived notifications don't appear
([e40a9eb](e40a9ebecd))
* **web:** env var typo
([dffbfc2](dffbfc2dab))
* **web:** escaping html-encoded symbols like apostrophes in
translations ([#1002](https://github.com/unraid/api/issues/1002))
([4ee42a6](4ee42a6cf6))
* **web:** flash of disconnected api state on page load
([d0819b8](d0819b8d02))
* **web:** infinite scroll loop when there's only 1 page of
notifications
([eeb3289](eeb3289ae8))
* **web:** infinite trigger at bottom of infinite scroll
([001be86](001be86181))
* **web:** notification styles & alignment
([#968](https://github.com/unraid/api/issues/968))
([547b75a](547b75a55e))
* **web:** refetch notifications for sidebar when new notifications
arrive
([23b1f1a](23b1f1ac73))
* **web:** remove warn and error console log removal
([#1086](https://github.com/unraid/api/issues/1086))
([e7d15ee](e7d15ee5ec))
* **web:** replaces dompurify with isomorphic-dompurify to enable
server-side usage with same syntax
([2724485](2724485989))
* **web:** reset infinite scroll when notification filters change
([3fe13d5](3fe13d5235))
* **web:** sanitize changelog markup after parsing
([83e00c6](83e00c640a))
* **web:** stop opening notification sidebar to archive tab
([ecfc797](ecfc797e7d))
* **web:** theme header differences
([#1085](https://github.com/unraid/api/issues/1085))
([1ecac5e](1ecac5ee4e))
* **web:** track 'notification seen' state across tabs & page loads
([#1121](https://github.com/unraid/api/issues/1121))
([321703e](321703e907))
* **web:** update unread total immediately upon archiving
([#982](https://github.com/unraid/api/issues/982))
([29d9371](29d9371cc3))


### Miscellaneous Chores

* release 4.1.2
([2323ee6](2323ee6838))
</details>

<details><summary>4.1.2</summary>

## 4.1.2 (2025-02-20)


### Features

* add unraid-ui documentation
([#1142](https://github.com/unraid/api/issues/1142))
([6378047](6378047bc4))
* attempt to resolve performance issues with rm earlier in build …
([#1152](https://github.com/unraid/api/issues/1152))
([c74bdd8](c74bdd8890))
* convert to pnpm monorepo
([#1137](https://github.com/unraid/api/issues/1137))
([ad6b658](ad6b6589db))
* style improvements
([a8211ce](a8211cef7d))
* **ui:** webgui-compatible web component library
([#1075](https://github.com/unraid/api/issues/1075))
([61ee689](61ee689658))
* unraid ui component library
([#976](https://github.com/unraid/api/issues/976))
([91de6e6](91de6e6c1e))
* update packageManager field for pnpm
([eec9785](eec9785ba1))


### Bug Fixes

* **deps:** update all non-major dependencies
([#1158](https://github.com/unraid/api/issues/1158))
([48df88f](48df88f5c1))
* **deps:** update dependency radix-vue to v1.9.12
([83344e0](83344e05c1))
* **deps:** update dependency radix-vue to v1.9.13
([c180728](c180728696))
* empty manifest and version alignment
([b07828d](b07828d655))
* integration of `unraid-ui` tailwind config in `web`
([#1074](https://github.com/unraid/api/issues/1074))
([3acc0dc](3acc0dc9c0))
* storybook resolution issue
([#1153](https://github.com/unraid/api/issues/1153))
([5a3e8df](5a3e8df003))


### Miscellaneous Chores

* release 4.1.2
([2323ee6](2323ee6838))
</details>

<details><summary>4.1.2</summary>

## 4.1.2 (2025-02-20)


### Features

* add validation step to ensure that variables are set
([ddb8772](ddb8772692))
* always start the API and run npm link from script path
([bb6baf9](bb6baf9bf4))
* **api:** rm 2fa & t2fa from myservers config type
([#996](https://github.com/unraid/api/issues/996))
([f45719f](f45719fa6b))
* array iteration for restoring files
([349145b](349145ba53))
* attempt to resolve performance issues with rm earlier in build …
([#1152](https://github.com/unraid/api/issues/1152))
([c74bdd8](c74bdd8890))
* attempt to start unraid-api with background task
([73a1249](73a12496d5))
* begin building plugin with node instead of bash
([#1120](https://github.com/unraid/api/issues/1120))
([4f5c367](4f5c367fdf))
* cleanup disclaimer and command to add users
([3867dfa](3867dfacb2))
* convert to pnpm monorepo
([#1137](https://github.com/unraid/api/issues/1137))
([ad6b658](ad6b6589db))
* copy only needed files for nodejs
([cf08627](cf08627725))
* do not move upgradepkg
([c12d8da](c12d8dae4e))
* dont pass entire server state for privacy
([b969f3a](b969f3a9ab))
* download nodejs and install on legacy OS versions
([b1a2ba7](b1a2ba78cc))
* error when nodejs download fails
([af1994c](af1994cb62))
* extract node to usr/local/
([9a0d63d](9a0d63d4ee))
* fix missing flash line
([5f1a61d](5f1a61d4aa))
* fix pm2 setup and add link command
([caf797c](caf797cf4a))
* move ssoenabled to a boolean flag rather than ids
([6f5edb2](6f5edb2406))
* move variable declarations to theme.ts
([00b8ffe](00b8ffe87d))
* name package with PR number
([cf72c8b](cf72c8b359))
* nodejs issues with version 2
([106b2e4](106b2e42c0))
* **plugin:** rm Date & Time format settings from Notification Settings
([acba0b0](acba0b0365))
* remove nghttp3 and only bundle nodejs
([bb555f8](bb555f8296))
* separate install process
([9bbab0f](9bbab0f86c))
* sso login boolean
([81f051e](81f051e02c))
* track node version in slackware
([9d2796f](9d2796f2c9))
* **ui:** webgui-compatible web component library
([#1075](https://github.com/unraid/api/issues/1075))
([61ee689](61ee689658))
* unraid single sign on with account app
([2b25537](2b25537e26))
* update packageManager field for pnpm
([eec9785](eec9785ba1))
* Update
plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/include/state.php
([336478c](336478c2e0))
* upload files directly to cloudflare
([84b234c](84b234c9cf))
* use plugin file for install and uninstall
([bbf2807](bbf28075c6))
* validate entries correctly
([a39da15](a39da15be4))
* **web:** activation modal steps, updated copy
([#1079](https://github.com/unraid/api/issues/1079))
([d8a5b17](d8a5b1711a))
* **web:** rm old notification bell upon plugin installation
([#979](https://github.com/unraid/api/issues/979))
([478254e](478254e134))


### Bug Fixes

* add another missing symlink
([477c113](477c113ce1))
* add error check to nodejs
([e844304](e84430471d))
* attempt to restore upgradepkg if install failed
([504283f](504283f227))
* capitalize name
([902c76c](902c76c759))
* cleanup commands
([ef82ec5](ef82ec5af5))
* delete unused line
([3e8c101](3e8c101edd))
* delete upgradepkg
([deb42f6](deb42f6a81))
* dnserr on new line
([9bfc04c](9bfc04c2a5))
* empty manifest and version alignment
([b07828d](b07828d655))
* formatting issue
([0042f14](0042f14ab3))
* further resolve sso sub ids issues
([b3551a1](b3551a1b69))
* install syntax error
([a355a64](a355a64136))
* more verbose logging for node install to find issues
([c3f4cf5](c3f4cf53c1))
* node_txz naming
([5e50f24](5e50f24d70))
* pass ssoSubIds only
([76a9ae9](76a9ae9386))
* PHP Warning in state.php
([#1126](https://github.com/unraid/api/issues/1126))
([59d6c1b](59d6c1b678))
* pkg_build
([2d60045](2d60045784))
* proper file replacements
([787f8b9](787f8b9bf5))
* restore upgradepkg before install
([8f58145](8f5814589e))
* strip components from tar line
([bad7f71](bad7f71fea))
* upgradepkg
([6962cdd](6962cdd214))
* used TGZ instead of TXZ for nghttp3
([d7bab9f](d7bab9f443))
* variables passed properly
([61ba324](61ba324ca0))


### Miscellaneous Chores

* release 4.1.2
([2323ee6](2323ee6838))
</details>

---
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-02-20 17:58:42 -05:00
Eli Bosley
b07828d655 fix: empty manifest and version alignment 2025-02-20 12:30:01 -05:00
Eli Bosley
eec9785ba1 feat: update packageManager field for pnpm 2025-02-20 12:21:25 -05:00
Eli Bosley
c74bdd8890 feat: attempt to resolve performance issues with rm earlier in build … (#1152)
…process

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Refactor**
- Enhanced file integrity validation during installation for more
reliable performance.

- **Chores**
- Streamlined the setup process by adding a cleanup step to remove
outdated components post-installation.
- Improved error handling and validation logic for checksum
verification.
	- Adjusted command sequence for better clarity and control flow.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-20 10:36:52 -05:00
Eli Bosley
ad6b6589db feat: convert to pnpm monorepo (#1137)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced enhanced project management scripts for building, testing,
and deploying the monorepo.
- Added an automated testing pipeline for improved reliability of the
Libvirt functionality.
- Provided a new plugin installation script that ensures thorough
cleanup during removal.

- **Improvements**
- Updated container mappings and dependency configurations for more
stable and efficient operations.
- Refined web application settings and build commands for smoother
performance.
- Streamlined continuous integration workflows with optimized caching
and dependency management.
  - Updated allowed origins in configuration for enhanced security.

- **Chores/Refactor**
- Removed outdated configuration files to simplify maintenance and
enhance consistency.
- Enhanced event listener management in the web application for better
error handling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-02-19 13:41:23 -05:00
Eli Bosley
753f1588b8 Feat/local-plugin (#1125)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit


• New Features  
 - Enhanced the login experience with improved session management and
two-factor authentication.
 - Introduced a comprehensive README for the Unraid Plugin Builder,
detailing development workflows and commands.

• Chores  
 - Streamlined build, packaging, and deployment processes with updated
dependency and environment configurations.
 - Updated Docker configurations to support pnpm as the package manager.
 - Added new environment variables for better configuration management.
 - Introduced new scripts for improved build and packaging processes.  

• Tests  
 - Removed outdated test cases and simplified test setups.  

• Refactor  
 - Modernized internal code structure and asynchronous handling for
improved overall performance.
 - Transitioned imports from lodash to lodash-es for better module
handling.
 - Updated environment variable management and configuration settings.  
 - Enhanced the build script for improved deployment processes.  
 - Updated the notification handling structure to improve efficiency.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-11 11:45:26 -05:00
ljm42
59d6c1b678 fix: PHP Warning in state.php (#1126)
PHP 8.4.4 (Unraid 7.1.0): Implicitly marking parameter $subkey as
nullable is deprecated

Related: https://github.com/unraid/webgui/pull/2009

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Refactor**
- Improved internal handling of optional details, enhancing system
robustness and flexibility when certain inputs are omitted. This update
contributes to smoother, more reliable operations without affecting
visible functionality.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-10 10:58:30 -08:00
Eli Bosley
4f5c367fdf feat: begin building plugin with node instead of bash (#1120)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Enhanced automated build and release processes with containerized
builds, improved caching, and refined artifact handling.
- Introduced new configuration options to strengthen versioning,
integrity checks, and pull request tracking.
	- Added a new Dockerfile for building the Node.js application.
- Added new environment variables for API versioning and validation
control.
	- Implemented comprehensive management of PM2 processes and state.
- Introduced a new GitHub Actions workflow for automating staging plugin
deployment upon pull request closure.
	- Updated logic for handling plugin installation and error feedback.
	- Added new asynchronous methods for managing PM2 processes.
	- Updated logging configurations for better control over log outputs.
	- Added Prettier configuration for consistent code formatting.
- Introduced a configuration to prevent the application from watching
for file changes.

- **Bug Fixes**
- Improved error handling and user feedback during the installation of
staging versions.

- **Documentation**
- Removed outdated introductory documentation to streamline project
information.

- **Chores**
- Updated deployment routines and validation steps to improve release
consistency and error handling.
- Simplified packaging and build scripts for smoother staging and
production workflows.
	- Excluded sensitive files from the Docker build context.
- Updated the `.gitignore` file to prevent unnecessary files from being
tracked.
- Adjusted the test timeout configuration for improved test reliability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-02-06 12:32:41 -05:00
Pujit Mehrotra
61ee689658 feat(ui): webgui-compatible web component library (#1075)
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Eli Bosley <ekbosley@gmail.com>

- **CI/CD**
	- Updated GitHub Actions workflow to build Unraid UI Web Components.
	- Adjusted artifact naming and download configurations.

- **Web Components**
	- Added new web components and registration mechanism.
	- Implemented toast notifications.
	- Enhanced UI component library.

- **Notifications**
	- Added real-time notification subscription.
	- Created notification settings page.
	- Implemented notification toast system.

- **API Improvements**
	- Refactored GraphQL schema loading.
	- Updated authentication and cookie handling.
	- Improved error logging and server initialization.

- **Development Tools**
	- Updated ESLint configuration.
	- Enhanced import path management.
	- Added new development dependencies.
2025-01-31 10:47:03 -05:00
Eli Bosley
c3f4cf53c1 fix: more verbose logging for node install to find issues 2025-01-29 15:50:07 -05:00
Zack Spear
d8a5b1711a feat(web): activation modal steps, updated copy (#1079)
* feat(stepper): add shadcn stepper components

* chore(serverState): remove partnerLogo property from server state configuration

* refactor(web): modal add subfooter slot

- adds ability to display content below the modal's content box

* feat(modal): add ActivationSteps component to subFooter slot in WelcomeModal and ActivationModal

* refactor: improve activation modal buttons responsiveness

* refactor: update activation flow messaging and UI

* feat: web/deploy-dev.sh add dynamic web component JS file whitelisting in auth-request.php

* fix: remove test UTM parameters from Unraid docs links in activation modal

* refactor: improve konami code handling and add type safety to activation steps

* chore: remove extra semicolon in serverState.ts

* Apply suggestions from code review

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-01-29 11:08:23 -08:00
Eli Bosley
336478c2e0 feat: Update plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/include/state.php
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-01-27 13:34:32 -05:00
Eli Bosley
3867dfacb2 feat: cleanup disclaimer and command to add users 2025-01-27 13:34:32 -05:00
Eli Bosley
81f051e02c feat:sso login boolean 2025-01-27 13:34:32 -05:00
Eli Bosley
6f5edb2406 feat: move ssoenabled to a boolean flag rather than ids 2025-01-27 13:34:32 -05:00
Eli Bosley
b3551a1b69 fix: further resolve sso sub ids issues 2025-01-27 13:34:32 -05:00
Eli Bosley
76a9ae9386 fix: pass ssoSubIds only 2025-01-27 13:34:32 -05:00
Eli Bosley
b969f3a9ab feat: dont pass entire server state for privacy 2025-01-27 13:34:32 -05:00
Eli Bosley
2b25537e26 feat: unraid single sign on with account app 2025-01-27 13:34:32 -05:00
Zack Spear
309d221542 feat / OEM whitelabel support (#973)
* feat: begin fixing dark mode in the webcomponents

* feat: lots of progress on colors

* feat: begin nuking alpha beta gamma

* feat: set background color on webcomponents

* fix: more color work

* feat: eliminate all alpha beta gamma variable usage

* feat: move variable declarations to theme.ts

* feat: begin fixing dark mode in the webcomponents

* feat: lots of progress on colors

* feat: begin nuking alpha beta gamma

* feat: set background color on webcomponents

* fix: more color work

* feat: eliminate all alpha beta gamma variable usage

* feat: download nodejs and install on legacy OS versions

* feat: do not move upgradepkg

* feat: array iteration for restoring files

* feat: separate install process

* feat: extract node to usr/local/

* feat: move variable declarations to theme.ts

* feat: remove nghttp3 and only bundle nodejs

* feat: validate entries correctly

* fix: upgradepkg

* feat: copy only needed files for nodejs

* fix: install syntax error

* fix: strip components from tar line

* feat: error when nodejs download fails

* feat(php): add OEM data extraction functionality

* feat(web): WIP add OEM activation modal and integrate OEM data handling

* refactor: replace oem etamology with activation

* feat(web): enhance activation modal with header and main title options

* refactor(web): update activation modal title to handle partner name conditionally

* feat: make partnerName optional in activation code data

* refactor: remove activationCodeStore from UserProfile component

* feat: integrate activation code data into server store

* feat: enhance activation code store to include callback actions and improve modal visibility logic

* refactor: remove unused theme reference from ColorSwitcher component

* fix: update partnerName in activationCodeData for clarity

* refactor: adjust gap spacing in Modal component for improved layout

* feat: enhance Activation Modal component with dynamic title and description, and add documentation buttons

* feat: implement localization for Activation Modal component titles and button texts

* feat: add new translations for activation prompts and welcome messages in the WebComponentTranslations class

* feat: implement key sequence to close Activation Modal and persist visibility state

* feat: update activation logic to conditionally activate or redeem based on activation code presence

* feat(plg): plg install / remove partner banner

* feat(plg): on install update config to enable display settings banner and on remove banner setting if no custom banner used

* fix(plg): plg remove, display banner no if no custom image

* feat(plg): implement partner banner handling and system model identification from activation JSON

* feat(web): add loading and error states to notification sidebar

* refactor(web): add container for loading & error states

* feat(web): add count labels to notification tabs

* refactor(web): lift notifications overview query to Sidebar from Indicator

* fix(web): refetch notifications for sidebar when new notifications arrive

* feat(web): move notification indicator icons to top-right of bell icon

previously, icons were placed next to bell icon because the status indicators
were not accessible to color-blind users. this commit replaces circular
status indicators with the icons.

* feat(web): remove notification indicator pulse

the pulse was initially added to provide visual feedback when:

1. a new notification arrived
2. an alert notification was unread

because we began using the legacy notify script, we now get a toast
on new notifications. re:2, feedback on the pulse was mixed, so i'm
removing it.

* refactor(plg): improve conditional for activation & partner setup

* feat(plg): add case model icon handling based on activation JSON

* feat(plg): enhance partner setup process with detailed logging and system identification updates and setup flag

* feat(plg): add setup flag file creation and logging for activation changes

* feat(plg): update activation setup flag checks for banner, case model icon, and system identity

* fix(plg): add error handling for invalid activation JSON and improve conditional checks for setup flags

* fix(plg): improve partner banner and case model icon setup logic with enhanced checks and comments

* fix(plg): update case model icon configuration to prevent newline issues in parsing

* fix(plg): remove unnecessary echo debug statements and improve setup flag handling for partner details

* fix(plg): remove unnecessary registration page check from activation code modal logic

* fix(plg): add overlay opacity prop to modal components for customizable background transparency

* fix(plg): enhance modal component with vertical centering option and adjust max-width

* fix(plg): enhance configuration handling by dynamically updating multiple header parameters in the config file

* fix(plg): improve comments and enhance setup flag handling for custom icons in activation logic

* fix(translations): correct capitalization and punctuation in user prompts for consistency

* fix(store): enhance activation code data structure with additional properties and correct partner URL reference

* fix(modal): enhance activation modal with dynamic partner logo and improved title handling

* fix(store): update activation code data structure with additional properties and correct partner details

* fix(index): refactor badge and button color handling with typed constants for improved maintainability

* fix(dependencies): add vue-tsc for improved TypeScript support in Vue projects

* refactor(plugin): remove unnecessary comments and clean up code structure

* refactor(plugin): remove todo comment for custom header logo

* fix(Modal): add partnerUrl handling for logo link and improve code structure

* fix(serverState): update partnerLogoPath to use a placeholder image for development

* feat(plugin): add rsync activation script for testing activation modal & installs

* refactor(activationCode): remove debug log for modal visibility check

* feat(plugin): enhance activation process by adding logo and case model handling

* refactor(activationCode): rename partnerLogoPath to partnerLogo and update handling for logo file type

* refactor(activationCode): remove debug log for partnerLogo watcher

* chore(nuxt.config): add ignore rule for webGui images directory

* refactor(plugin): rename params array to DISPLAY_PARAMS and update handling for configuration updates

* fix(web): partner logo handling for themes

* fix(plg): activation oem, custom case icon cfg handling

* fix(plugin): replace sed with awk for config file updates in DISPLAY_PARAMS handling

* fix(web): add target and rel attributes to partner logo link for security

* feat(plugin): add theme parameter to DISPLAY_PARAMS and activation code interface

* fix(plugin): replace sed with parameter expansion and awk for config file updates

* fix(plugin): reboot logic for plg install to prevent settings overwrite

* feat(plugin): streamline activation and partner setup by abstracting scripts for better maintainability

* fix(plugin): update script source paths for activation and partner setup

* fix(plugin): update script source paths for activation and partner setup to use relative paths

* fix(plugin): update script source paths for activation and partner setup to use absolute paths

* fix(plugin): add debug mode support to activation scripts and update setup flag handling

* fix(plugin): enhance activation scripts with debug mode and conditional execution for safety

* refactor(plugin): reposition execution of activation_code setup / remove scripts

* fix(plugin): add checks for activation_code_setup script existence and improve deletion logging

* fix(plugin): add option to remove setup flag after script execution

* fix(plugin): streamline activation script execution by removing unnecessary checks

* fix(plugin): remove duplicate activation_code_setup script sourcing

* feat(modal): add overlay color prop and enhance class binding for modal background

* feat(activation): update modal overlay color and opacity

* feat(plg): add WebComponentsExtractor class for managing JS file retrieval

* feat(plugin): myservers1.phpintegrate WebComponentsExtractor for dynamic script tag generation

* feat(activation): enhance getData method to support JSON output and add getDataForHtmlAttr for HTML-safe JSON

* refactor(activation): simplify getData method by removing parameters

* feat(plugin): add welcome-modal.php for displaying server state and web components

* refactor(web): activation code store rename modal visibility variables for clarity

* feat(web): add WelcomeModal component for user onboarding and server setup

* feat(plugin): activation_code setup and remove script support welcome modal

* refactor(plugin): streamline activation code setup script by removing some comments

* fix(plugin): update activation code setup script to prepend items to auth request allow list array

* feat: enhance ActivationCodeExtractor with partner logo handling and metadata extraction

- Added constants for document root and web GUI images directory.
- Introduced properties for partner name, URL, logo path, and logo file type.
- Implemented methods to retrieve partner logo path, render logo string, partner name, and URL.
- Enhanced data extraction logic to include partner-related information from JSON data.
- Added debug method for outputting internal state for troubleshooting.

* refactor: update activation-data.php to include debug output for ActivationCodeExtractor

- Removed JSON response and replaced it with a debug output wrapped in <pre> tags.
- This change allows for easier troubleshooting by displaying internal state information directly on the page.

* feat: inject partner logo into DefaultPageLayout and update JS file paths

- Modified the activation code setup script to change the path of JavaScript files to be relative to the web GUI's webroot.
- Added functionality to inject a partner logo into the DefaultPageLayout by replacing the existing logo string.
- Implemented a conditional backup mechanism for the DefaultPageLayout file before making changes.
- Included debug output to confirm successful injection or report errors during the process.

* feat: add partner logo display functionality and style adjustments

- Introduced a new file for displaying the partner logo, which retrieves the logo and URL based on the activation code.
- Added CSS styles to adjust the display properties of the partner logo in the header, ensuring proper sizing and alignment.
- Enhanced the integration of the partner logo into the existing plugin structure.

* refactor: simplify partner logo injection debug output in activation code setup script

- Removed syntax check for the DefaultPageLayout file after injecting the partner logo.
- Streamlined debug output to confirm successful injection without additional checks, enhancing clarity and reducing complexity.

* style: adjust partner logo height in myservers1.php

* style: update partner logo width in PartnerLogoImg.vue

- Changed the CSS class for the partner logo image from a max height constraint to a fixed width of 72 units, ensuring better responsiveness and alignment in the layout.

* fix: update modal title attribute for conditional close behavior

- Modified the title attribute of the modal overlay to conditionally display the close instruction based on the showCloseX property. This change improves accessibility by ensuring the title is only set when the close button is visible.

* refactor: update partner logo handling in activation code scripts and extractor

- Changed the partner logo file name to 'partner-logo.svg' in ActivationCodeExtractor.
- Simplified logo path handling by removing unnecessary file type checks and directly using the SVG file.
- Updated CSS in myservers1.php to target only the SVG logo.
- Modified activation code setup and removal scripts to consistently reference the SVG logo, improving clarity and maintainability.

* feat: enhance activation code setup script to include server name handling

- Added logic to retrieve and set the server name from the activation JSON if the current system model or comment is not set, or if the current name is "Tower".
- Improved debug output to include the partner server name, enhancing visibility during the activation process.
- Sanitized the partner server name to remove quotes and backslashes for better handling.

* feat: validate activation JSON before proceeding with setup

- Added validation for the activation JSON file to ensure it is correctly formatted before executing the setup process.
- Enhanced debug output to indicate whether the JSON is valid or not, improving troubleshooting capabilities.
- The setup will now only proceed if the activation JSON is confirmed to be valid, preventing potential errors during execution.

* fix(plg): improve warning message for invalid activation JSON in setup script

* feat: enhance activation code handling with partner logo integration

- Added a new optional property 'partnerLogo' to the ActivationCodeExtractor class and updated related interfaces to support boolean values for logo display.
- Removed the PNG logo reference from the activation code setup script, streamlining the logo handling process.
- Updated the server state to utilize the new 'partnerLogo' property, ensuring consistent logo display logic across the application.
- Adjusted computed properties in the activation code store to reflect the changes in logo handling, improving clarity and maintainability.

* fix: correct activation JSON validation in setup script

- Updated the activation code setup script to use 'jq empty' for validating the activation JSON file, ensuring proper error handling and validation.
- This change improves the robustness of the setup process by accurately checking the JSON format before proceeding.

* fix: correct comment formatting in dynamix.unraid.net.plg

- Fixed a formatting issue in the comment regarding the use of myservers.cfg values to prevent conflicts during installation. This change improves code readability and clarity.

* chore: update rsync activation script comments for clarity

- Revised comments in the rsync-activation-dir.sh script to better describe its purpose and usage.
- Enhanced documentation with an example usage to improve user understanding of the script's functionality.

* refactor: clean up activation data and extractor files

- Removed outdated copyright comments from activation-data.php and activation-code-extractor.php for improved readability.
- Simplified the debug output in activation-data.php by using short PHP tags.
- Updated the comment in the ActivationCodeExtractor class to be more concise, enhancing clarity for future developers.

* fix: remove unnecessary CSS properties in myservers1.php

- Eliminated redundant display and margin properties from the CSS in myservers1.php to streamline the styling and improve code clarity.

* refactor: streamline WebComponentsExtractor class and update method names

- Removed outdated copyright comments from web-components-extractor.php for improved readability.
- Renamed method getJsFileUrl() to getJSFileRelativePath() to enhance clarity and consistency in naming conventions.
- Adjusted indentation for better code formatting and readability.

* refactor: simplify partner logo handling in activation code script

- Removed unnecessary variable initialization and included only essential requires for improved clarity.
- Streamlined the code in partner-logo.php to focus on the core functionality of displaying the partner logo.
- Enhanced maintainability by reducing complexity in the script.

* refactor: clean up activation and server state files

- Removed outdated copyright comments and unnecessary variable initializations from activation-data.php and server-state.php for improved readability.
- Streamlined the code by eliminating redundant require statements, focusing on essential functionality.
- Enhanced maintainability and clarity by simplifying the structure of both files.

* feat: add password creation prompts to translations

- Introduced new translation strings for password creation in both PHP and JSON files.
- Enhanced user guidance by providing detailed messages about the importance of the password for system access and management.
- Improved overall user experience by ensuring clarity in the password setup process.

* refactor: update activation code setup script comments

* refactor: enhance activation code removal script functionality

- Updated the activation code removal script to delete additional related files, including PHP and setup scripts, for a more thorough cleanup.
- Improved comments for clarity on script usage and options, particularly regarding the self-delete functionality.
- Streamlined the deletion process by using an array to manage files to be removed, enhancing maintainability and readability.

* fix: update WelcomeModal to disable close button

* refactor: reorganize activation code setup and improve script clarity

- Moved the activation and partner setup section to follow the web component timestamp check to ensure correct targeting during setup.
- Updated comments for better clarity regarding the activation code setup process.
- Retained the warning message about not closing the window yet for user guidance.

* refactor: enhance activation code setup script with improved comments and logic

- Updated comments to clarify the purpose of server name, model, and description checks.
- Modified conditional logic to include additional checks for server identification.
- Added a TODO note regarding the necessity of updating the ident.cfg file, ensuring future review for potential optimizations.

* refactor: update activation code scripts to use .done flag

* refactor: introduce constant for activation modal storage key

- Added a new constant for the activation code modal hidden storage key to improve code maintainability and clarity.
- Updated the activation code store to utilize the new constant, replacing hardcoded string references.

* feat: enhance user onboarding and modal components

- Added new translation strings for activating Unraid licenses and creating Unraid.net accounts to improve user onboarding experience.
- Updated the WelcomeModal and Activation Modal components to reflect new messaging and improved styling options, including the ability to disable shadows.
- Implemented a workaround in the WelcomeModal to address font-size inconsistencies between login and authenticated pages.
- Refactored the index page to correctly pass server data to the WelcomeModal component.

* chore: comment out WelcomeModalCe component for testing

* feat: add disableOverlayClose prop to Modal and WelcomeModal components

- Introduced a new prop `disableOverlayClose` to the Modal component, allowing users to prevent closing the modal by clicking on the overlay.
- Updated the WelcomeModal component to utilize the new `disableOverlayClose` prop, enhancing modal behavior customization.

* refactor: update activation code removal script to delete by default

- Changed the activation code removal script to use a dry-run flag instead of a self-delete flag, enhancing safety during execution.
- Updated the plugin file to reflect the removal of the --delete option, ensuring consistency with the new script behavior.

---------

Co-authored-by: Eli Bosley <ekbosley@gmail.com>
Co-authored-by: Pujit Mehrotra <pujit@lime-technology.com>
2025-01-09 16:06:10 -05:00
Pujit Mehrotra
f45719fa6b feat(api): rm 2fa & t2fa from myservers config type (#996)
* feat(api): rm 2fa & t2fa from myservers config type

* feat(api): rm 2fa & T2fa from config normalizer

* doc(plugin): rm obsolete documentation on 2fa/t2fa feature
2025-01-08 14:15:15 -05:00
Pujit Mehrotra
acba0b0365 feat(plugin): rm Date & Time format settings from Notification Settings 2025-01-08 14:14:41 -05:00
Eli Bosley
0042f14ab3 fix: formatting issue 2025-01-08 10:16:34 -05:00
Eli Bosley
3e8c101edd fix: delete unused line 2025-01-08 10:16:34 -05:00
Eli Bosley
477c113ce1 fix: add another missing symlink 2025-01-08 10:16:34 -05:00
Eli Bosley
caf797cf4a feat: fix pm2 setup and add link command 2025-01-08 10:16:34 -05:00
Eli Bosley
73a12496d5 feat: attempt to start unraid-api with background task 2025-01-08 10:16:34 -05:00
Eli Bosley
bb6baf9bf4 feat: always start the API and run npm link from script path 2025-01-08 10:16:34 -05:00
Eli Bosley
5f1a61d4aa feat: fix missing flash line 2025-01-08 10:16:34 -05:00
Eli Bosley
bbf28075c6 feat: use plugin file for install and uninstall 2025-01-08 10:16:34 -05:00
Eli Bosley
00b8ffe87d feat: move variable declarations to theme.ts 2024-12-17 11:48:45 -05:00