Commit Graph

224 Commits

Author SHA1 Message Date
585d31a374 fix: mejorar visualización responsive en móvil para metabase-debug
All checks were successful
build-and-deploy / build (push) Successful in 42s
build-and-deploy / deploy (push) Successful in 3s
Ajustes realizados:

Components:
- MetabaseCardDisplay: grid responsive, queries con wrap, botones apilables
- MetabaseCardsTable: filtros verticales en móvil, acciones con wrap

Page:
- Header responsive con elementos apilados
- Stats en grid 2x2 para móvil, 4 columnas en desktop
- Tamaños de fuente adaptados con breakpoints

Todas las queries SQL y JSON ahora usan whitespace-pre-wrap y break-words
para aprovechar el espacio vertical en lugar de scroll horizontal.
2025-10-14 02:21:51 -06:00
214d9a17d5 feat: agregar link a Metabase Debug en sidebar
All checks were successful
build-and-deploy / build (push) Successful in 41s
build-and-deploy / deploy (push) Successful in 3s
Agrega nuevo item de navegación en la sidebar para acceder
a la página de debugging de Metabase.
2025-10-14 02:14:41 -06:00
56835d9b5d fix: corregir colores de UAlert y UBadge en metabase-debug
All checks were successful
build-and-deploy / build (push) Successful in 43s
build-and-deploy / deploy (push) Successful in 3s
- Cambiar 'red' a 'error'
- Cambiar 'blue' a 'info'
- Cambiar 'yellow' a 'warning'
- Cambiar 'text-blue-600' a 'text-primary'
2025-10-14 02:09:20 -06:00
a774d21cae feat: agregar configuración de Metabase
All checks were successful
build-and-deploy / build (push) Successful in 8s
build-and-deploy / deploy (push) Successful in 3s
- Agregar variables de entorno de Metabase en docker-compose.yml
- Agregar variables de Metabase en workflow de Gitea Actions
- Configurar METABASE_URL, METABASE_API_KEY, METABASE_EMAIL y METABASE_PASSWORD
2025-10-14 01:59:46 -06:00
90aebbde3d feat: agregar página de debug para Metabase
All checks were successful
build-and-deploy / build (push) Successful in 41s
build-and-deploy / deploy (push) Successful in 3s
- Crear componente MetabaseCardDisplay para mostrar detalles de queries
- Crear componente MetabaseCardsTable para listar todas las queries
- Crear página /metabase-debug con vistas de tabla, cards y queries Panorama
- Agregar API routes para cards de Metabase (GET, POST, export)
- Actualizar metabase.ts para soportar API Key authentication
- Agregar configuración de Metabase API Key en nuxt.config.ts
- Documentar todos los endpoints disponibles en METABASE_API_ENDPOINTS.md
2025-10-14 01:34:56 -06:00
d0b0dc3c56 feat: add URL query params support to explorer page
All checks were successful
build-and-deploy / build (push) Successful in 43s
build-and-deploy / deploy (push) Successful in 3s
- Add support for 'db' and 'table' query parameters
- Automatically preselect database and table from URL
- Auto-load data when both params are provided
- Update URL when user changes selection manually
- Example: /explorer?db=facturador+supabase&table=Ingresos
2025-10-13 19:52:00 -06:00
775ad6d32d fix: use items prop instead of options for USelectMenu
All checks were successful
build-and-deploy / build (push) Successful in 44s
build-and-deploy / deploy (push) Successful in 4s
- Change :options to :items according to Nuxt UI documentation
- USelectMenu requires items prop for data binding
- Fixes dropdown rendering issue
2025-10-13 19:21:55 -06:00
c997780187 fix: simplify SelectMenu to use string values instead of objects
All checks were successful
build-and-deploy / build (push) Successful in 43s
build-and-deploy / deploy (push) Successful in 3s
- Change from object binding to string-based selection
- Add computed properties to transform data to string arrays
- Add reverse lookup to get IDs from selected strings
- Improves compatibility with USelectMenu component
- Fixes dropdown not showing options correctly
2025-10-13 19:00:27 -06:00
3dd24e33c9 refactor: improve SelectMenu implementation with object binding
All checks were successful
build-and-deploy / build (push) Successful in 44s
build-and-deploy / deploy (push) Successful in 4s
- Change from ID-based selection to full object binding
- Add custom label templates to display proper text
- Simplify computed properties and watchers
- Improve user experience with proper label display
2025-10-13 18:46:52 -06:00
ce69a62336 fix: replace USelect with USelectMenu for better compatibility
All checks were successful
build-and-deploy / build (push) Successful in 44s
build-and-deploy / deploy (push) Successful in 3s
- Change from USelect to USelectMenu for database and table selection
- Add value-attribute and option-attribute props for proper rendering
- Improves dropdown functionality and user experience
2025-10-13 18:41:16 -06:00
87dec62ee1 feat: remove maintenance badge from data explorer in sidebar
All checks were successful
build-and-deploy / build (push) Successful in 42s
build-and-deploy / deploy (push) Successful in 3s
2025-10-13 18:35:07 -06:00
3bf7760a67 feat: implement data explorer with Metabase integration
All checks were successful
build-and-deploy / build (push) Successful in 42s
build-and-deploy / deploy (push) Successful in 3s
- Replace maintenance mode with functional data explorer
- Connect to Metabase API for database and table listing
- Implement raw data viewer with search and column filtering
- Add support for querying tables directly from Metabase
- Limit queries to 1000 records by default for performance
2025-10-13 18:33:40 -06:00
b10e0990aa fix: extract data array from Metabase response
All checks were successful
build-and-deploy / build (push) Successful in 43s
build-and-deploy / deploy (push) Successful in 3s
Metabase API returns {data: [...], total: number} instead of
a direct array. Update databases endpoint to extract and return
only the data array for easier frontend consumption.

Verified working with:
- facturador supabase (PostgreSQL, ID: 2)
- Sample Database (H2, ID: 1)
2025-10-13 17:55:40 -06:00
42c1e20ee3 fix: use Docker container name for Metabase internal communication
All checks were successful
build-and-deploy / build (push) Successful in 44s
build-and-deploy / deploy (push) Successful in 4s
Change Metabase URL from public domain to Docker container name
for proper internal network communication between containers.

Changes:
- Update default METABASE_URL to http://metabase:3000
- Docker DNS resolution works correctly with container names
- Maintains public domain fallback via environment variables

This fixes authentication issues when containers communicate
within the same Docker network.
2025-10-13 17:52:52 -06:00
244b1ae7fb fix: move Metabase credentials to runtime config
All checks were successful
build-and-deploy / build (push) Successful in 43s
build-and-deploy / deploy (push) Successful in 4s
Move hardcoded Metabase credentials to Nuxt runtime config to
allow configuration via environment variables and follow security
best practices.

Changes:
- Update server/utils/metabase.ts to use useRuntimeConfig()
- Add metabase config to nuxt.config.ts runtimeConfig
- Update .env.example with Metabase configuration template

Environment variables:
- METABASE_URL (default: https://metabase.nucleoriofrio.com)
- METABASE_EMAIL (required for authentication)
- METABASE_PASSWORD (required for authentication)
2025-10-13 17:50:21 -06:00
4b25a70b8b feat: add Metabase API integration
All checks were successful
build-and-deploy / build (push) Successful in 45s
build-and-deploy / deploy (push) Successful in 3s
Add complete integration with Metabase API to fetch data from
'facturador supabase' database.

Features:
- Server-side Metabase authentication using session tokens
- Utility functions for Metabase API requests with auto-retry
- API endpoints to proxy Metabase requests
  - GET /api/metabase/databases - List all databases
  - GET /api/metabase/tables/:databaseId - Get tables and metadata
  - POST /api/metabase/query - Execute queries against tables
- useMetabase() composable for frontend consumption
  - getDatabases() - Fetch available databases
  - getDatabaseMetadata() - Get tables and fields info
  - queryTable() - Execute queries with filters and limits
  - resultToObjects() - Helper to convert results to objects

Session tokens are cached and auto-refreshed when expired.
This enables the application to display real data from the
facturador database without using embeds or iframes.
2025-10-13 17:46:48 -06:00
f4047e1505 fix: remove tableStores plugin that depended on deleted stores
All checks were successful
build-and-deploy / build (push) Successful in 45s
build-and-deploy / deploy (push) Successful in 3s
The tableStores.client.ts plugin was importing from the deleted
stores directory, causing build failures. This plugin initialized
Pinia stores for table data caching which is no longer needed.
2025-10-13 16:03:18 -06:00
b7a76911f9 refactor: remove Pinia state management and IndexedDB storage
Some checks failed
build-and-deploy / build (push) Failing after 3m3s
build-and-deploy / deploy (push) Has been skipped
Remove all client-side state management and data caching as the
application no longer needs to manage data analysis features.

Changes:
- Remove Pinia store system (app/stores/ directory)
  - metadata.ts: Store for table metadata
  - tableDataFactory.ts: Factory for creating table data stores
  - README.md: Comprehensive store documentation
- Remove IndexedDB storage utility (app/utils/storage.ts)
- Remove Pinia dependencies from package.json
  - @pinia/nuxt
  - pinia
- Remove Pinia module from nuxt.config.ts
- Remove vendor-pinia chunk configuration
- Remove server services (server/services/ directory)
  - table-service.ts: Supabase-dependent table operations
  - query-parser.ts: Query parsing utilities
  - query-runner.ts: Query execution utilities

The application now operates as a stateless authentication portal
without client-side data caching or state management.
2025-10-13 15:34:46 -06:00
226d807d76 docs: add restoration guide for data analysis features
All checks were successful
build-and-deploy / build (push) Successful in 7s
build-and-deploy / deploy (push) Successful in 2s
Add comprehensive documentation for restoring data analysis pages
that were put in maintenance mode during database migration.

Includes:
- Commit reference (608b4db) with original logic
- Commands to restore each file from git history
- Step-by-step restoration process
- Notes about Supabase to new data source migration
- File-by-file breakdown of removed functionality
2025-10-13 14:24:01 -06:00
2cf2242b82 Add maintenance mode to data analysis pages
All checks were successful
build-and-deploy / build (push) Successful in 45s
build-and-deploy / deploy (push) Successful in 4s
Restore all data analysis pages but display them in maintenance mode.
Users can see these pages in the navigation and access them, but they
show a maintenance message instead of trying to fetch data.

Changes:
- Create MaintenanceMode component for reusable maintenance UI
- Restore all deleted pages: explorer, metadatos, rawExplorer, panorama,
  comparativa-cosechas, informe-ingresos
- Replace complex data-fetching logic with MaintenanceMode component
- Add "Mantenimiento" badges to navigation menu items
- Pages show clear maintenance message with technical details
- Users can still navigate to these pages without errors

This approach:
- Keeps the UI structure intact
- Shows users what features exist
- Provides clear communication about maintenance status
- Prevents confusion about missing features
- Easy to re-enable when data sources are reconnected
2025-10-13 13:52:13 -06:00
608b4dbe26 Remove all database dependencies and simplify application
All checks were successful
build-and-deploy / build (push) Successful in 3m37s
build-and-deploy / deploy (push) Successful in 4s
BREAKING CHANGE: Remove all data analysis features

This commit removes all database-dependent functionality and simplifies
the application to focus on authentication and user management only.

Changes:
- Remove all /api/data and /api/metadata server endpoints
- Remove Supabase configuration from nuxt.config.ts and .env.example
- Remove @supabase/supabase-js dependency from package.json
- Delete data analysis pages: explorer, metadatos, rawExplorer, panorama,
  comparativa-cosechas, informe-ingresos
- Simplify sidebar navigation to show only "Inicio"
- Update home page to focus on authentication and profile management
- Remove "Supabase" and "Solo lectura" badges from navbar
- Keep only auth-related API endpoints: /api/auth/status and /api/auth/check-group

The application now serves as an authentication-protected portal with:
- Authentik SSO integration
- User profile management
- Settings and notifications pages (coming soon)
- No database or data analysis features
2025-10-13 13:37:52 -06:00
1baa4de990 Remove legacy authentication and PostgreSQL configuration
All checks were successful
build-and-deploy / build (push) Successful in 56s
build-and-deploy / deploy (push) Successful in 4s
- Remove obsolete auth middleware references from settings and notifications pages
- Clean up .env.example: remove unused PostgreSQL and PostgREST variables
- Delete POSTGRES_SETUP.md: outdated documentation for removed services
- App now uses Supabase directly instead of local PostgreSQL+PostgREST
- Authentication is handled entirely by Authentik Forward Auth at Traefik level
2025-10-13 13:27:22 -06:00
4a3624b231 Add SessionStatusButton to navbar
All checks were successful
build-and-deploy / build (push) Successful in 52s
build-and-deploy / deploy (push) Successful in 4s
- Add AuthSessionStatusButton to dashboard layout navbar
- Redesign button as compact icon button for navbar integration
- Button checks session status against Authentik in real-time
- Styled to match navbar aesthetic with hover effects
2025-10-13 13:07:52 -06:00
d5d364af4b Enable SSR for Authentik header reading
All checks were successful
build-and-deploy / build (push) Successful in 54s
build-and-deploy / deploy (push) Successful in 3s
- Changed ssr: false to ssr: true in nuxt.config.ts
- This is critical for useAuthentik() to read headers during server-side rendering
- Without SSR, the composable cannot access Authentik proxy headers
- User authentication state will now be properly initialized on page load
2025-10-13 12:11:25 -06:00
6e739250a0 Add missing auth API endpoints
All checks were successful
build-and-deploy / build (push) Successful in 35s
build-and-deploy / deploy (push) Successful in 3s
- Create /api/auth/status endpoint for session verification
- Create /api/auth/check-group endpoint for group membership validation
- These endpoints read Authentik proxy headers to provide auth state
- Required for SessionStatusButton and backend group verification
2025-10-13 12:08:10 -06:00
e4d0b43692 feat: agregar componentes de auth y UserMetadata en dropdown del UserMenu
All checks were successful
build-and-deploy / build (push) Successful in 35s
build-and-deploy / deploy (push) Successful in 4s
2025-10-13 11:58:38 -06:00
4bdea01cb2 chore: limpiar variables innecesarias de postgres/postgrest del workflow
All checks were successful
build-and-deploy / build (push) Successful in 10s
build-and-deploy / deploy (push) Successful in 3s
2025-10-13 11:44:53 -06:00
888d4d1139 fix: eliminar servicios postgres y postgrest, usar solo nuxt-app
All checks were successful
build-and-deploy / build (push) Successful in 10s
build-and-deploy / deploy (push) Successful in 3s
2025-10-13 11:43:43 -06:00
dce81cecc6 fix: actualizar Dockerfile para copiar desde directorio actual
Some checks failed
build-and-deploy / build (push) Successful in 23s
build-and-deploy / deploy (push) Failing after 13s
2025-10-13 11:28:58 -06:00
b18bd5e924 fix: mover Dockerfile a nuxt4-app/ y corregir workflow
Some checks failed
build-and-deploy / build (push) Failing after 9s
build-and-deploy / deploy (push) Has been skipped
2025-10-13 11:28:10 -06:00
6dd13e8ffc fix: eliminar workflow deploy.yml duplicado 2025-10-13 11:26:45 -06:00
d32b3e8db3 feat: migrar a useAuthentik y configurar CI/CD con Gitea Actions
Some checks failed
build-and-deploy / build (push) Failing after 6s
build-and-deploy / deploy (push) Has been skipped
deploy-analiticaNucleo / deploy (push) Failing after 2s
- Migrar de useAuth() a useAuthentik() para autenticación SSR
- Actualizar componentes UserMenu, AppSidebar y profile.vue
- Configurar docker-compose.yml con variables dinámicas
- Agregar Gitea Actions workflow para build y deploy automático
- Implementar hook de monitoreo de Gitea Actions
- Configurar secrets y variables para deploy seguro
- Actualizar configuración de Traefik con Authentik Forward Auth
2025-10-13 11:25:40 -06:00
052d73920b deploy actualizado
All checks were successful
deploy-analiticaNucleo / deploy (push) Successful in 14s
2025-10-05 17:14:10 -06:00
16cef018b5 logout e integracion con authentik completa
All checks were successful
deploy-analiticaNucleo / deploy (push) Successful in 36s
2025-10-05 17:08:53 -06:00
0380f69f1b entorno de desarrollo listo 2025-10-05 15:56:42 -06:00
4a1f153417 fix: usar prefijo NUXT_ para variables de entorno en runtime
All checks were successful
deploy-analiticaNucleo / deploy (push) Successful in 13s
- Agregar NUXT_SUPABASE_URL y NUXT_SUPABASE_SERVICE_ROLE_KEY
- Nuxt requiere prefijo NUXT_ para sobrescribir runtimeConfig en producción
- Mantener variables originales para compatibilidad
2025-10-05 13:56:19 -06:00
8e46838244 fix: agregar SUPABASE_SERVICE_ROLE_KEY al workflow y desactivar navigateFallback del SW
All checks were successful
deploy-analiticaNucleo / deploy (push) Successful in 36s
- Agregar SUPABASE_SERVICE_ROLE_KEY al workflow de Gitea Actions
- Usar variable correcta en docker-compose.yml
- Desactivar navigateFallback en workbox para evitar error de precached-url
- Actualizar documentación con los 3 secretos necesarios
2025-10-05 13:45:36 -06:00
594bef073c fix: configurar PWA para proxies y resolver error 500 en APIs
All checks were successful
deploy-analiticaNucleo / deploy (push) Successful in 13s
- Agregar headers CORS para manifest.webmanifest y service worker
- Configurar navigateFallback a /index.html con denylist para rutas API y Authentik
- Mapear SUPABASE_ANON_KEY a SUPABASE_SERVICE_ROLE_KEY en docker-compose
- Agregar headers Cross-Origin para PWA detrás de proxies
2025-10-05 12:49:37 -06:00
8df579e36a fix: resolve @nuxt/kit module import error in browser
All checks were successful
deploy-analiticaNucleo / deploy (push) Successful in 36s
- Replace external module references with empty stub file
- Add .nuxt-stubs/empty.mjs to provide browser-compatible module
- Update workaround to resolve server-only modules to stub file instead of marking as external
2025-10-05 12:43:01 -06:00
da3b08f050 fix
All checks were successful
deploy-analiticaNucleo / deploy (push) Successful in 5m42s
2025-10-05 12:29:48 -06:00
445157afc4 fix
Some checks failed
deploy-analiticaNucleo / deploy (push) Failing after 2m39s
2025-10-05 12:17:24 -06:00
68f2285bc8 fix
Some checks failed
deploy-analiticaNucleo / deploy (push) Failing after 10s
2025-10-05 12:14:30 -06:00
2b252d798b preparando el deploy
Some checks failed
deploy-analiticaNucleo / deploy (push) Failing after 2s
2025-10-05 12:13:32 -06:00
053501a16d mejoras de ui UX demasido intensas 2025-10-01 07:44:14 -06:00
32b10e1ad6 mejoras ui/ux 2025-10-01 06:51:39 -06:00
c4719d95cc sper mejoras de UI 2025-10-01 05:39:26 -06:00
d4f6333812 mejora ui x exageradas 2025-10-01 05:04:00 -06:00
9bd96e6d69 ui?ux mejorada, comparativa cosecha-cosecha 2025-10-01 03:51:18 -06:00
bf370de372 cambio heavys 2025-10-01 03:11:10 -06:00
a2eae3e2bf graficas meh. pueden mejorar, pueden desaparecer 2025-10-01 02:19:29 -06:00