Commit Graph

83 Commits

Author SHA1 Message Date
9a3dc1f0e6 Feature: Mejorar UX del tema y persistencia
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 55s
- Mover botón editar al lado del nombre (siempre visible, sutil)
- Quitar efecto hover del header
- Detectar tema del sistema operativo automáticamente
- Actualizar theme-color dinámicamente (azul cielo día / oscuro noche)
- Usar cookies para persistir tema y filtros (1 año)
- Sincronizar filtros de apps con cookies
2025-10-16 23:03:43 -06:00
8b94e81dc8 Feature: Obtener iconos automáticamente de las aplicaciones
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 54s
- Intentar meta_icon de Authentik primero
- Buscar apple-touch-icon.png del dominio (PWA)
- Intentar favicon.ico como fallback
- Mostrar icono por defecto si todo falla
- Sistema de retry inteligente para evitar requests duplicados
2025-10-16 22:56:15 -06:00
bc19956e10 Style: Cambiar color de email a gris claro en modo oscuro
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 54s
2025-10-16 22:53:48 -06:00
f090570af0 Style: Hacer cards de apps más transparentes en modo oscuro
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 55s
- Cambiar opacidad de 0.85 a 0.65
- Permite ver mejor el fondo nocturno
2025-10-16 22:52:19 -06:00
16f74829a6 Fix: Sincronizar tema con clase dark de Nuxt UI y arreglar selectores CSS
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 55s
- Agregar función applyThemeClass para sincronizar con HTML
- Aplicar clase dark/light al elemento HTML
- Agregar watcher para actualizar clase en cambios de tema
- Inicializar clase correcta en onMounted
- Separar estilos dark mode en bloque sin scoped
- Usar selectores .dark directos en lugar de :global(.dark)
- Agregar !important para superar especificidad de scoped
2025-10-16 22:49:54 -06:00
00c9d9578a Fix: Sincronizar tema con clase dark de Nuxt UI
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 53s
- Agregar función applyThemeClass para sincronizar con HTML
- Aplicar clase dark/light al elemento HTML
- Agregar watcher para actualizar clase en cambios de tema
- Inicializar clase correcta en onMounted
2025-10-16 22:22:51 -06:00
32c9006ca0 Style: Mejorar contraste en modo oscuro
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 56s
- Contenedores principales mucho más transparentes (0.15)
- Cards de aplicaciones negras sólidas (0.85)
- Mantener efectos 3D en todas las cards
2025-10-16 22:12:58 -06:00
75069a7633 Feature: Scrollbar personalizada, arreglos SVG y mejoras de transparencia
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 56s
- Agregar scrollbar personalizada compacta (8px) adaptable al tema
- Estilo de scrollbar verde (#00DC82) con opacidad diferente para día/noche
- Soporte para WebKit (Chrome/Safari) y Firefox
- Arreglar SVG de colinas para usar 100% del ancho horizontal (preserveAspectRatio=none)
- Revertir modal a estructura funcional (v-model:open, title prop, #content slot)
- Igualar transparencia en modo oscuro usando rgba(0,0,0,0.3-0.4) en lugar de rgba(15,15,25)
- Aplicar tintado negro puro para reducir brillo en modo oscuro manteniendo misma transparencia
2025-10-16 22:02:45 -06:00
639a4c44c4 Mejorar botones y badges con estilos sólidos y efectos 3D
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 54s
- Cambiar botones de quick-actions a variant solid con efectos 3D
- Agregar box-shadow multicapa con inset shadows a botones
- Implementar efectos hover y active en botones de sesión
- Cambiar badges de grupos a variant solid
- Agregar efectos 3D a badges con sombras y hover
- Mejorar color del email en modo oscuro (negro en lugar de gris)
- Aumentar peso de fuente del email en modo oscuro para mejor legibilidad
2025-10-16 21:58:02 -06:00
e06f0c746a Mejoras en glassmorphism y soporte de modo oscuro
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 54s
- Aumentar transparencia en todos los contenedores (0.3-0.4 alpha)
- Mejorar backdrop-filter con blur(20px) y saturate(180%)
- Agregar efectos 3D pronunciados con box-shadow multicapa
- Implementar inset shadows para efecto de profundidad
- Ajustar colores en modo oscuro (rgba(15, 15, 25) en lugar de rgba(30, 30, 40))
- Mejorar bordes con rgba blanco semi-transparente
- Agregar transiciones suaves con cubic-bezier
- Efectos hover mejorados con scale y translateY
- Aplicar cambios en UserHeader, ApplicationsList y quick-actions
- Mejor contraste y legibilidad en modo oscuro
2025-10-16 21:51:26 -06:00
01139f4415 Feature: Rediseño completo con tema día/noche y fondos animados
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 54s
- Implementar sistema de tema día/noche con persistencia en localStorage
- Crear componente AnimatedBackground con paisajes SVG animados
- Generar todos los assets SVG desde cero (sol, luna, estrellas, nubes, montañas)
- Añadir animaciones suaves para nubes, estrellas y elementos del paisaje
- Rediseñar UserHeader como componente principal clickeable
- Integrar modal de edición de perfil en el header
- Reorganizar layout principal mostrando solo aplicaciones
- Mejorar diseño de ApplicationsList con glassmorphism
- Implementar efectos hover y transiciones elegantes
- Diseño responsive mobile-first
- Diferencias visuales notorias entre modo día y noche
2025-10-16 21:46:22 -06:00
9ebc97c784 Feature: Agregar filtros por grupos en lista de aplicaciones
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 54s
- Toggle buttons en header para filtrar por grupos
- Si no hay grupos seleccionados, se muestran todas las apps
- Grupos de apps ahora aparecen como subtítulo con chips compactos
- UI mejorada con estado activo en botones de filtro
- Mensaje cuando no hay apps en grupos seleccionados
2025-10-16 21:12:43 -06:00
fd86acbbfa Feature: Agregar lista de aplicaciones disponibles para el usuario
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 55s
- Nuevo endpoint /api/authentik/applications para obtener apps del usuario
- Componente ApplicationsList que muestra apps en grid responsivo
- Filtrado por grupos del usuario (basado en headers de Authentik)
- UI con iconos, badges de grupos y redirección a cada app
- Refresh automático cada 5 minutos
2025-10-16 21:01:53 -06:00
a5d0f1b286 Fix: Corregir estructura del modal de edición de perfil
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 53s
- Mover el botón fuera del componente UModal para que funcione correctamente
- Actualizado token de API de Authentik en secrets para habilitar edición
2025-10-16 20:57:20 -06:00
fd495b05c7 Debug: Agregar logs para investigar usuario no encontrado
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 55s
2025-10-16 20:38:38 -06:00
5894dd9309 Trigger redeploy: Usar URL interna de Authentik
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 10s
2025-10-16 20:35:14 -06:00
56fc0cdd78 Fix: Corregir implementación del modal según documentación de Nuxt UI
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 57s
- Usar v-model:open en lugar de v-model
- Mover botón dentro del UModal como trigger (slot por defecto)
- Contenido en slot #content según documentación
- Agregar title como prop del UModal
- Eliminar UCard innecesario
2025-10-16 20:29:12 -06:00
13fcb312d1 fix de directorio
Some checks failed
build-and-deploy / build-and-deploy (push) Has been cancelled
2025-10-16 20:28:20 -06:00
7ab5027551 Fix: Arreglar modal en blanco y clicks dentro del formulario
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 53s
- Eliminado v-if del modal para evitar problemas de renderizado
- Agregado @click.stop al UCard para prevenir propagación de eventos
- Agregado prevent-close mientras se actualiza
2025-10-16 20:25:04 -06:00
ca3b23c1d3 Fix: Agregar v-if al modal de editar perfil para evitar clicks inesperados
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 52s
Se agregó v-if="isOpen" al UModal para que solo se renderice en el DOM cuando
esté abierto. Esto soluciona el problema de que el modal se activaba al hacer
clic en áreas vacías del componente.
2025-10-16 20:21:53 -06:00
c05da4c797 test
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 53s
2025-10-16 20:09:20 -06:00
dbdff1961c Fix: Combinar jobs build y deploy en uno solo para evitar bug de dependencias
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 9s
2025-10-16 20:06:21 -06:00
1bf8d14df6 Fix: Eliminar --no-cache del docker build para mejorar velocidad
Some checks failed
build-and-deploy / build (push) Successful in 9s
build-and-deploy / deploy (push) Has been cancelled
2025-10-16 20:05:19 -06:00
d36138f9bd Test: Verificar Actions después de reiniciar todos los servicios
Some checks failed
build-and-deploy / deploy (push) Has been cancelled
build-and-deploy / build (push) Has been cancelled
2025-10-16 19:57:30 -06:00
72bd669b3b Test: Verificar Actions después de limpiar queues
Some checks failed
build-and-deploy / build (push) Successful in 2m17s
build-and-deploy / deploy (push) Has been cancelled
2025-10-16 19:52:25 -06:00
8d1948a6fd Test: Verificar que Gitea Actions funciona después de reiniciar runner 2025-10-16 19:50:44 -06:00
67261cd1fc Fix: Corregir errores de TypeScript en componentes
- Instalar @types/node para resolver referencias a process
- Corregir colores inválidos en componentes (orange→warning, purple→secondary, gray→neutral, etc.)
- Agregar tipos explícitos en GroupCheckButton y EditProfileButton
- Eliminar propiedad timeout inválida en toasts
2025-10-16 19:42:00 -06:00
fa0475efbf fix 2025-10-16 19:32:37 -06:00
bcf9efa89d fix 2025-10-16 19:24:43 -06:00
72712840b0 Test: Separar comandos git para hook correcto
Este commit demuestra la ejecución separada de comandos git:
- git add -A (paso 1)
- git commit (paso 2)
- git push (paso 3 - ejecutará el hook una sola vez)
2025-10-16 19:11:02 -06:00
b1caa15089 Trigger: Reintentar build del fix user.ts
El build anterior del commit b6a58e8 no completó el push de las
imágenes Docker al registro. Este commit trivial triggerea el
workflow de nuevo para que se complete correctamente el build
y deploy del fix que unifica user.ts (GET y PATCH en un solo archivo).
2025-10-16 19:02:00 -06:00
b6a58e8df7 Fix: Combinar endpoints API en un solo archivo user.ts
PROBLEMA IDENTIFICADO:
Nuxt 4 no reconoce archivos con extensiones como .get.ts y .patch.ts
en el directorio server/api/. Esto causaba que los endpoints no se
compilaran en el build final.

SOLUCIÓN:
- Eliminados: user.get.ts y user.patch.ts
- Creado: user.ts que maneja ambos métodos HTTP (GET y PATCH)
- Usa event.method para distinguir entre GET y PATCH
- Devuelve 405 para métodos no permitidos

Este cambio debería permitir que Nuxt compile correctamente los
endpoints de la API de Authentik para edición de perfil.
2025-10-16 18:41:41 -06:00
705fb58555 Fix: Agregar --no-cache al docker build para incluir API endpoints
All checks were successful
build-and-deploy / build (push) Successful in 2m22s
build-and-deploy / deploy (push) Successful in 3s
Se agregó la flag --no-cache al comando docker build para forzar
una reconstrucción completa de la imagen Docker sin usar cache.

Esto asegura que los endpoints de la API de Authentik
(/api/authentik/user GET y PATCH) se incluyan correctamente
en la imagen compilada.
2025-10-16 18:19:00 -06:00
9140a52160 Force Docker rebuild to include API endpoints
All checks were successful
build-and-deploy / build (push) Successful in 56s
build-and-deploy / deploy (push) Successful in 4s
Se agregó un comentario al código para forzar que Docker
reconstruya la imagen y así incluya los endpoints de la API
de Authentik que faltaban en el build anterior.

Los endpoints /api/authentik/user (GET y PATCH) existen en
el código fuente pero no fueron incluidos en la imagen Docker
debido a cache.
2025-10-16 18:00:42 -06:00
01c4b97905 Fix: Agregar variables de Authentik al workflow de deploy
All checks were successful
build-and-deploy / build (push) Successful in 7s
build-and-deploy / deploy (push) Successful in 3s
Se agregaron las variables de entorno de Authentik al job de deploy
para que se pasen correctamente al docker-compose:
- NUXT_AUTHENTIK_API_TOKEN (secret)
- NUXT_AUTHENTIK_API_URL (variable)
- NUXT_PUBLIC_AUTHENTIK_URL (variable)

Esto permitirá que el contenedor tenga acceso al token de la API
de Authentik y pueda funcionar la edición de perfil.
2025-10-16 17:56:58 -06:00
128ae5a256 Fix: Agregar variables de entorno de Authentik API al contenedor
All checks were successful
build-and-deploy / build (push) Successful in 7s
build-and-deploy / deploy (push) Successful in 3s
Se agregaron las variables de entorno necesarias para que el backend
pueda conectarse a la API de Authentik:
- NUXT_AUTHENTIK_API_TOKEN: Token de autenticación para la API
- NUXT_AUTHENTIK_API_URL: URL del servidor Authentik
- NUXT_PUBLIC_AUTHENTIK_URL: URL pública de Authentik

Esto corrige el problema donde la API de perfil devolvía HTML
en lugar de JSON porque no tenía acceso al token de Authentik.
2025-10-16 17:54:10 -06:00
248af8f8d1 Initial commit: Add Nuxt app with Authentik integration and profile editing
All checks were successful
build-and-deploy / build (push) Successful in 58s
build-and-deploy / deploy (push) Successful in 3s
- Add Nuxt 4 application with Authentik Proxy Outpost integration
- Add EditProfileButton component for editing user profile via Authentik API
- Add API endpoints for Authentik user management (GET/PATCH)
- Configure Gitea Actions workflow for automated deployment
- Add monitoring hook for Gitea Actions
- Configure environment variables and Docker Compose setup
2025-10-16 17:14:49 -06:00
43bcf4a647 Add modular group verification system with frontend and backend checks
This commit implements a comprehensive, reusable group verification system:

Components:
- GroupCheckButton: Base component for group verification
- 7 specialized buttons: 3 real groups (authentik Admins, grupo-prueba, lvl0), 1 public access test, 2 system verification buttons
- All buttons support both frontend and backend verification modes

Backend:
- New API endpoint /api/auth/check-group for server-side group validation
- Reads Authentik headers and validates group membership

Frontend:
- Enhanced useAuthentik composable with hasGroup() and checkGroupBackend() methods
- Toast notifications for all verification results
- Smooth animations and color-coded visual feedback

UI Improvements:
- Organized layout with cards for different verification types
- Grid layout for group buttons
- Professional styling with hover effects and shadows
- Clear visual distinction between frontend/backend checks
2025-10-13 04:09:42 -06:00
f52f9f393f Add temporary debug endpoint to inspect all headers 2025-10-13 03:40:36 -06:00
1c901fa877 Remove debug endpoint 2025-10-13 03:21:59 -06:00
96fac68c6d Enhance user metadata display with app and outpost information
- Update AuthentikUser interface to include appSlug and outpostName
- Capture x-authentik-meta-app and x-authentik-meta-outpost headers
- Improve UserMetadata component to display connection information
- Filter empty groups from groups array
- Add documentation about available Authentik headers
2025-10-13 03:20:05 -06:00
1cba2f427e Add debug endpoint to inspect Authentik headers 2025-10-13 03:16:36 -06:00
65dee7382f Add comprehensive documentation for components, Traefik and Authentik
- Document all authentication components architecture
  - UserAvatar, UserMetadata components
  - Individual action buttons with their specific functionality
  - useAuthentik() composable with full API documentation

- Explain Authentik Proxy Outpost flow
  - Forward Auth mechanism
  - Step-by-step authentication flow
  - Advantages of proxy-based authentication

- Detail Traefik routing configuration
  - Router 1: Public routes (PWA resources) with priority 100
  - Router 2: Protected routes with Authentik middleware
  - CORS and headers middleware explanation

- Add complete Authentik setup guide
  - Traefik middleware configuration
  - Authentik Provider and Application setup
  - Network configuration requirements

- Include troubleshooting section
  - Common errors and solutions
  - PWA offline functionality
  - Headers debugging
2025-10-13 03:11:46 -06:00
3f5c4bc820 Fix TypeScript errors in useAuthentik composable
- Add AuthentikUser and AuthStatusResponse interfaces
- Fix toast color from 'gray' to 'neutral' (valid color)
- Remove invalid 'timeout' property from toast.add()
- Fix toast action from 'click' to 'onClick'
- Add proper type annotations for error handling
- Replace process.server with import.meta.server
- Make email, name, uid optional in AuthentikUser interface
2025-10-13 03:05:04 -06:00
d8f70f2aa5 Refactor auth components into individual button components
- Remove StatusBadges component (badges for authenticated, connected, groups)
- Remove ActionButtons component
- Create individual button components:
  - SessionStatusButton: handles session status check
  - ProfileButton: navigates to user profile
  - LogoutButton: handles user logout
  - LoginButton: reloads page to trigger login
- Update app.vue to use new individual button components
- Improve code quality with better component separation and reusability
2025-10-13 03:00:02 -06:00
0fd25e34e6 Update offline.html with SSR+Auth limitation explanation
- Revert CacheFirst strategy back to NetworkFirst
- Add clear technical explanation in offline.html
- Explain that full offline mode requires no-auth or SPA
- Note that UI remains functional if app is already open
2025-10-13 02:45:57 -06:00
e3fc6c924a Add offline.html to public routes (no authentication required)
This allows the service worker to cache offline.html without Authentik redirecting to login.
2025-10-13 02:39:36 -06:00
496ff7630b Add offline fallback page for PWA
- Create offline.html with user-friendly offline message
- Auto-redirect when connection is restored
- Use offline.html as navigateFallback instead of root
- Include offline.html in PWA assets for precaching

This ensures users see a proper offline page when opening the app without connection, instead of a browser error.
2025-10-13 02:37:34 -06:00
ec9ccece61 Improve document caching strategy for offline navigation
- Add navigateFallbackDenylist to exclude API and auth routes
- Enhanced urlPattern to match document destination and root path
- Increase cache entries to 50 and duration to 7 days
- Add cacheableResponse for better cache control

This should enable the app to open offline after being loaded once.
2025-10-13 02:34:14 -06:00
e59f7b653d Add NetworkFirst caching strategy for navigation requests
This enables offline navigation by caching HTML documents generated by SSR.
When offline, users can now navigate to cached pages using the service worker.
2025-10-13 02:27:32 -06:00