3a061a005cf75ac346bd3653bd3e2e97d3f1264a
Features: - ✅ Cross-tenant audit log viewing for ADMIN/SUPPORT_MANAGER - ✅ New 'all_tenants' parameter in audit endpoints - ✅ Frontend toggle to view all clients' logs - ✅ Multi-tenant stats support in /audit/stats - ✅ Fixed timezone issue with date filters (UTC consistency) - ✅ Fixed date_to filter overlap causing duplicate records Changes: - backend/app/api/v1/endpoints/audit.py: * Added tenant_id and all_tenants query parameters * Permission checks for cross-tenant viewing * Dynamic tenant filtering based on user role * Fixed date_to filter (removed +1 day overlap) * Updated all stats queries for multi-tenant support - frontend-internal/src/routes/audit/+page.svelte: * Import auth store for role detection * Added 'Ver todos los clientes' toggle for admins * Pass all_tenants parameter to API calls * UI badge indicating multi-tenant mode - Version bump: 1.5.1.2 → 1.6.0 across all packages
ServiceManagerWeb - Mesa de Ayuda B2B
Sistema multi-tenant de Mesa de Ayuda/Soporte Técnico empresarial para Aduanasoft.
Arquitectura
- Frontend: SvelteKit + TypeScript (portal clientes + panel interno)
- Backend: Python FastAPI + Pydantic v2
- Workers: Celery + Redis (notificaciones, SLAs, jobs)
- BD: PostgreSQL + Alembic migrations
- Auth: JWT + Refresh tokens + 2FA opcional (TOTP)
- Infra: Docker Compose local, preparado para producción
Estructura del Monorepo
ServiceManagerWeb/
├── backend/ # FastAPI app
├── frontend-client/ # SvelteKit app para clientes
├── frontend-internal/ # SvelteKit app para staff interno
├── workers/ # Celery tasks
├── db/ # Migrations y esquemas
├── docker/ # Dockerfiles específicos
├── docs/ # Documentación adicional
├── scripts/ # Scripts de desarrollo/despliegue
├── docker-compose.yml # Orquestación completa
└── .env.example # Variables de entorno
Stack Tecnológico
Backend (Python)
- FastAPI (async)
- Pydantic v2
- SQLAlchemy 2.0 (async)
- Alembic (migrations)
- Argon2 (hashing passwords)
- PyJWT
- Celery + Redis
Frontend (JavaScript/TypeScript)
- SvelteKit
- TypeScript
- TailwindCSS
- shadcn/ui o similar
- Zod (validación)
Infraestructura
- PostgreSQL 15+
- Redis 7+
- Docker & Docker Compose
- Nginx (reverse proxy)
Dominios del Sistema
- Auth: Usuarios, roles, permisos, 2FA
- Tenants: Multi-tenancy, organizaciones
- Tickets: Gestión de tickets, estados, SLAs
- Notifications: Email, plantillas, logs
- Audit: Bitácora de acciones
Roles de Usuario
Internos (Staff)
ADMIN: Control total del sistemaSUPPORT_MANAGER: Gestión de equipos y SLAsAGENT: Atención de ticketsAUDITOR: Solo lectura para auditoría
Clientes
CLIENT_ADMIN: Gestión de organización clienteCLIENT_USER: Creación y seguimiento de tickets
Quick Start
# Clonar y configurar
git clone <repo>
cd ServiceManagerWeb
cp .env.example .env
# Levantar servicios
docker-compose up -d
# Verificar estado
docker-compose ps
URLs por Defecto
- Frontend Clientes: http://localhost:3000
- Frontend Interno: http://localhost:3001
- API Backend: http://localhost:8000
- API Docs: http://localhost:8000/docs
- Adminer (DB): http://localhost:8080
Utilidades Administrativas
Para gestión y debugging de la base de datos, usa el script consolidado:
# Ver todos los comandos disponibles
python scripts/db_utils.py --help
# Listar todos los usuarios
python scripts/db_utils.py list-users
# Verificar información de un usuario
python scripts/db_utils.py check-user admin@example.com
# Resetear contraseña de un usuario
python scripts/db_utils.py reset-password admin@example.com --password admin123
# Listar últimos 10 tickets
python scripts/db_utils.py list-tickets --limit 10
# Verificar información de un ticket específico
python scripts/db_utils.py check-ticket <TICKET_ID>
# Filtrar por tenant
python scripts/db_utils.py list-users --tenant-id <TENANT_UUID>
python scripts/db_utils.py list-tickets --tenant-id <TENANT_UUID>
💡 Alternativas para debugging:
- PostgreSQL directo: Conectarte con pgAdmin, DBeaver o
psql - Python Shell:
python -m asynciodesde el directorio backend - Tests: Crear tests específicos en
backend/tests/ - API Docs: Usar Swagger UI en http://localhost:8000/docs
Scripts de Desarrollo
# Backend
cd backend
python -m uvicorn app.main:app --reload --port 8000
# Frontend Cliente
cd frontend-client
npm run dev -- --port 3000
# Frontend Interno
cd frontend-internal
npm run dev -- --port 3001
# Workers
cd workers
celery -A app.worker worker --loglevel=info
celery -A app.worker beat --loglevel=info
Testing
# Backend tests
cd backend
pytest
# Frontend tests
cd frontend-client
npm test
cd ../frontend-internal
npm test
Contribución
- Fork del proyecto
- Crear feature branch (
git checkout -b feature/nueva-funcionalidad) - Commit cambios (
git commit -am 'Agregar nueva funcionalidad') - Push a branch (
git push origin feature/nueva-funcionalidad) - Crear Pull Request
Licencia
Propietario - Aduanasoft © 2026
Description
Languages
Python
53.1%
Svelte
38.3%
TypeScript
3.4%
PowerShell
1.7%
PLpgSQL
1.2%
Other
2.3%