Files
api/web/components/Logs/OidcDebugButton.vue
Eli Bosley 4e945f5f56 feat(api): enhance OIDC redirect URI handling in service and tests (#1618)
- Updated `getRedirectUri` method in `OidcAuthService` to handle various
edge cases for redirect URIs, including full URIs, malformed URLs, and
default ports.
- Added comprehensive tests for `OidcAuthService` to validate redirect
URI construction and error handling.
- Modified `RestController` to utilize `redirect_uri` query parameter
for authorization requests.
- Updated frontend components to include `redirect_uri` in authorization
URLs, ensuring correct handling of different protocols and ports.

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

* **New Features**
* Stronger OIDC redirect_uri validation and an admin GraphQL endpoint to
view full OIDC configuration.
* OIDC Debug Logs UI (panel, button, modal), enhanced log viewer with
presets/filters, ANSI-colored rendering, and a File Viewer component.
* New GraphQL queries to list and fetch config files; API Config
Download page.

* **Refactor**
* Centralized, modular OIDC flows and safer redirect handling;
topic-based log subscriptions with a watcher manager for scalable live
logs.

* **Documentation**
  * Cache TTL guidance clarified to use milliseconds.

* **Chores**
* Added ansi_up and escape-html deps; improved log formatting; added
root codegen script.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-09-02 10:40:20 -04:00

29 lines
743 B
Vue

<script setup lang="ts">
import { ref } from 'vue';
import { Button } from '@unraid/ui';
import { BugAntIcon } from '@heroicons/vue/24/outline';
import FilteredLogModal from './FilteredLogModal.vue';
const showOidcLogs = ref(false);
</script>
<template>
<div>
<Button variant="outline" size="sm" @click="showOidcLogs = true">
<BugAntIcon class="w-4 h-4 mr-2" />
View OIDC Debug Logs
</Button>
<FilteredLogModal
v-model="showOidcLogs"
log-file-path="graphql-api.log"
filter="OIDC"
title="OIDC Debug Logs"
description="Viewing OIDC authentication and configuration logs"
:line-count="200"
:auto-scroll="true"
highlight-language="plaintext"
/>
</div>
</template>