- Updated `getRedirectUri` method in `OidcAuthService` to handle various edge cases for redirect URIs, including full URIs, malformed URLs, and default ports. - Added comprehensive tests for `OidcAuthService` to validate redirect URI construction and error handling. - Modified `RestController` to utilize `redirect_uri` query parameter for authorization requests. - Updated frontend components to include `redirect_uri` in authorization URLs, ensuring correct handling of different protocols and ports. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Stronger OIDC redirect_uri validation and an admin GraphQL endpoint to view full OIDC configuration. * OIDC Debug Logs UI (panel, button, modal), enhanced log viewer with presets/filters, ANSI-colored rendering, and a File Viewer component. * New GraphQL queries to list and fetch config files; API Config Download page. * **Refactor** * Centralized, modular OIDC flows and safer redirect handling; topic-based log subscriptions with a watcher manager for scalable live logs. * **Documentation** * Cache TTL guidance clarified to use milliseconds. * **Chores** * Added ansi_up and escape-html deps; improved log formatting; added root codegen script. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
connect-components via Nuxt 3
Install dependencies
npm i
Dev testing and builds with .env setup
There's 3 version required for various types of development, testing builds in the Unraid webgui, and creating a prod build for the Unraid webgui.
.envfornpm run devlocal development.env.stagingfornpm run build:devwhich tests builds in the Unraid webgui.env.productionfornpm run build:webguiwhich does a production build for the Unraid webgui
For the URL values, you can use what you'd like. So if you're testing locally, you can use http://localhost:5555 for the account app if you have a local version running. Alternatively you're free to use the staging or production URLs.
For productions URLs you could ultimately not provide any value and the URL helpers will default to the production URLs. But for local dev and testing, it's usually easiest to keep the .env key value pairs so you don't forget about them.
.env for npm run dev local development
VITE_ACCOUNT=http://localhost:5555
VITE_CONNECT=https://connect.myunraid.net
VITE_UNRAID_NET=https://preview.unraid.net
VITE_OS_RELEASES="https://releases.unraid.net/os"
VITE_CALLBACK_KEY="FIND_IN_1PASSWORD"
VITE_ALLOW_CONSOLE_LOGS=true
VITE_TAILWIND_BASE_FONT_SIZE=16
.env.staging for npm run build:dev which tests builds in the Unraid webgui
Please take a look at the prebuild:dev & postbuild:dev scripts in package.json to see how the .env.staging file is used.
VITE_ACCOUNT=https://staging.account.unraid.net
VITE_CONNECT=https://connect.myunraid.net
VITE_UNRAID_NET=https://staging.unraid.net
VITE_OS_RELEASES="https://releases.unraid.net/os"
VITE_CALLBACK_KEY="FIND_IN_1PASSWORD"
VITE_ALLOW_CONSOLE_LOGS=TRUE
Notice how VITE_TAILWIND_BASE_FONT_SIZE is not set in the .env.staging file.
This is because the Unraid webgui uses the font-size: 62.5% "trick".
.env.production for npm run build:webgui which does a production build for the Unraid webgui
Please take a look at the prebuild:webgui & postbuild:webgui scripts in package.json to see how the .env.production file is used.
VITE_ACCOUNT=https://account.unraid.net
VITE_CONNECT=https://connect.myunraid.net
VITE_UNRAID_NET=https://unraid.net
VITE_OS_RELEASES="https://releases.unraid.net/os"
VITE_CALLBACK_KEY="FIND_IN_1PASSWORD"
Both VITE_ALLOW_CONSOLE_LOGS and VITE_TAILWIND_BASE_FONT_SIZE should never be set here.