Convierte el repositorio de Anexo76 en una plantilla limpia y reutilizable
para nuevos proyectos del ecosistema Workspace de Aduanasoft.
Cambios principales:
- Elimina módulos específicos de Anexo76: a76, a24, sitar, public
- Agrega módulo example/ con patrón CRUD de referencia (models/dto/service/routes)
- Limpia migraciones Alembic: solo quedan las 6 de core (users, tenants, permissions)
- Reemplaza todas las rutas del dashboard con stubs genéricos
- Elimina lógica de negocio aduanera: shortcuts, CSV imports, permisos, catálogos
- Simplifica variables de entorno: una sola WORKSPACE_URL deriva Hub y Keycloak
- Agrega scripts/auth-mode.sh para alternar entre auth local y workspace
- Configura docker-compose con nombres genéricos (app-*)
- Corrige flujo SSO: elimina system-gate SCAF/SCAII que bloqueaba el login
- Modo DEV_LOCAL_AUTH para desarrollo sin Keycloak ni Hub
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
docker-compose.prod.yml:
- Agrega SITE_URL=https://anexo76-dev.aduanasoft.com hardcodeado (no depende
del .env raíz). resolveSystemBaseUrl() lo usa como fallback cuando
ORIGIN tiene un valor localhost que pisó el default del compose.
- Agrega VITE_HUB_URL=https://workspace.aduanasoft.com para que
getWorkspaceBaseUrl() no dependa de VITE_HUB_URL del .env raíz dev.
- Documenta el problema: root .env con ORIGIN=localhost pisa el default.
Dockerfile.prod:
- Agrega ARG/ENV VITE_KEYCLOAK_REALM (faltaba en los build-args de Jenkins).
- Agrega ARG/ENV VITE_HUB_URL con default workspace.aduanasoft.com.
.env.example raíz:
- Agrega advertencia sobre ORIGIN, VITE_HUB_URL y APP_PUBLIC_URL con
instrucciones explícitas de cómo corregirlos en producción.
- Extrae estos valores al bloque documentado para que sean visibles.
Root cause: el deploy en producción ejecuta
docker compose -f docker-compose.prod.yml up
que carga automáticamente el .env raíz con ORIGIN=http://localhost:5173,
pisando el default correcto del prod compose.
url.origin en SvelteKit = localhost:5173 → redirect_uri con localhost.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Added sidebar menu components including sidebar-menu-item, sidebar-menu-skeleton, sidebar-menu-sub-button, sidebar-menu-sub-item, sidebar-menu-sub, sidebar-menu, sidebar-provider, sidebar-rail, sidebar-separator, sidebar-trigger, and sidebar.
- Introduced skeleton loading states for sidebar items.
- Integrated tooltip components for enhanced user interaction.
- Developed mobile responsiveness using media queries.
- Established authentication flow with Keycloak, including login, logout, and token management.
- Implemented server-side redirection based on authentication status.
- Enhanced error handling and logging for authentication processes.
- Implemented SvelteKit frontend with authentication callback handling.
- Created demo routes and paraglide localization functionality.
- Added health check and entrypoint scripts for backend services.
- Established PostgreSQL and Keycloak initialization scripts with health checks.
- Introduced models for database schema using SQLAlchemy.
- Configured Vite and SvelteKit for development and testing environments.
- Added health check script to verify service statuses and resource usage.
- Created Docker entrypoint scripts for seamless service startup.