mirror of
https://github.com/unraid/api.git
synced 2026-01-02 22:50:02 -06:00
- 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>
24 lines
844 B
TypeScript
24 lines
844 B
TypeScript
import EventEmitter from 'events';
|
|
|
|
import { GRAPHQL_PUBSUB_CHANNEL } from '@unraid/shared/pubsub/graphql.pubsub.js';
|
|
import { PubSub } from 'graphql-subscriptions';
|
|
|
|
// Allow subscriptions to have 30 connections
|
|
const eventEmitter = new EventEmitter();
|
|
eventEmitter.setMaxListeners(30);
|
|
|
|
export { GRAPHQL_PUBSUB_CHANNEL as PUBSUB_CHANNEL };
|
|
|
|
export const pubsub = new PubSub({ eventEmitter });
|
|
|
|
/**
|
|
* Create a pubsub subscription.
|
|
* @param channel The pubsub channel to subscribe to. Can be either a predefined GRAPHQL_PUBSUB_CHANNEL
|
|
* or a dynamic string for runtime-generated topics (e.g., log file paths like "LOG_FILE:/var/log/test.log")
|
|
*/
|
|
export const createSubscription = <T = any>(
|
|
channel: GRAPHQL_PUBSUB_CHANNEL | string
|
|
): AsyncIterableIterator<T> => {
|
|
return pubsub.asyncIterableIterator<T>(channel);
|
|
};
|