Contexto Técnico del Proyecto - CreaRack Pro
Contexto Técnico del Proyecto - CreaRack Pro
Información técnica detallada: stack, modelos, APIs, arquitectura.
Nota histórica (2026-07): esta ficha se levantó en la era abril-2026 y muchas cifras concretas (versiones, conteos, endpoints) son de aquel snapshot. La fuente de verdad de la versión es config/settings/base.py (APP_VERSION) y del Local Agent terminal/agent/version.py (AGENT_VERSION). Correcciones aplicadas: stack IA (Gemma 4 vía Google AI Studio, DeepSeek/OpenRouter ya NO son proveedores activos), PostgreSQL 18, RLS multi-tenant ACTIVO en PROD, y la URL del repo. La carpeta Documentation/ fue archivada/eliminada en abril-2026 (doc técnica → wiki del workspace).
Descripción
CreaRack Pro es una plataforma SaaS para diseño de centros de datos y gestión de redes.
Stack Tecnológico
| Categoría | Tecnología | Versión |
|---|
| Lenguaje | Python | 3.14.2 |
| Framework | Django | 6.0.1 |
| API | Django Ninja | 1.5.3 |
| WebSocket | Django Channels | 4.3.0 |
| Base de Datos | PostgreSQL | 18 |
| Cache | Valkey/Redis | 5.2.1 |
| Infraestructura | Docker Compose | - |
| AI/ML | google-genai (Gemma 4, primario único) | 1.60.0 |
| AI Fallback | anthropic (Claude Haiku 4.5, fallback deliberado) | - |
| AI compat dev | openai (solo driver Ollama-compat en dev; NO DeepSeek) | - |
| Colas | huey | - |
| SSH | asyncssh | 2.18.0 |
| Validación | pydantic | 2.10+ |
| Imágenes | Pillow | 11.1.0 |
| Frontend | Vanilla JS ES6+ | - |
| Canvas | Konva.js | - |
Modelos de Datos (13 modelos)
| Modelo | Descripción |
|---|
Organization | Multi-tenant SaaS (incluye CompanySettings) |
User | Usuarios con roles y organizaciones |
Rack | Racks de servidores |
RackGroup | Grupos de racks |
Device | Dispositivos en racks |
Blueprint | Mapas de infraestructura |
Stencil | Plantillas de dispositivos |
BoxCategory | Categorías de cajas |
ConfigBackup | Backups de configuración |
SystemLog | Auditoría de acciones |
ScriptTemplate | Scripts reutilizables |
Annotation | Anotaciones en blueprints |
BlueprintConnection | Conexiones entre racks |
APIs Disponibles
Core API (core/api.py)
| Endpoint | Método | Descripción |
|---|
/api/logs/export | GET | Export logs CSV (Admin) |
/api/status | GET | System status dashboard |
/api/status/statistics | GET | Estadísticas de ocupación |
/api/status/health | GET | Health check detallado |
/api/status/racks-summary | GET | Resumen de racks |
/api/status/blueprints-stats | GET | Estadísticas de mapas |
/api/status/version | GET | Versión del sistema |
/api/search | GET | Búsqueda global cross-módulo |
Racks API (racks/api.py)
| Endpoint | Método | Descripción |
|---|
/api/racks | GET/POST | CRUD racks |
/api/racks/{id} | GET/PUT/DELETE | Rack individual |
/api/racks/{id}/export | GET | Export rack JSON |
/api/racks/import | POST | Import racks JSON |
/api/racks/{id}/pdf | GET | Generate rack PDF/HTML |
/api/device/{id}/network-config | GET/POST | Network config |
Blueprints API (blueprints/api.py)
| Endpoint | Método | Descripción |
|---|
/api/blueprints | GET/POST | CRUD mapas |
/api/blueprints/{id} | GET/PUT/DELETE | Mapa individual |
/api/blueprints/{id}/clone | POST | Clonar mapa |
/api/blueprints/{id}/placements | GET/PUT | Posiciones de racks |
/api/blueprints/{id}/annotations | GET/POST/PUT/DELETE | Anotaciones |
/api/blueprints/autoplan/import | POST | Auto-Plan AI |
Network API (network/api.py)
| Endpoint | Método | Descripción |
|---|
/api/network/device/{id}/details | GET | Detalles dispositivo |
/api/network/device/{id}/credentials | GET | Credenciales |
/api/network/device/{id}/backups | GET | Listar backups |
/api/network/backup/{id}/view | GET | Ver backup |
/api/network/backup/compare | POST | Comparar backups |
/api/network/device/{id}/backup/trigger | POST | Backup manual |
/api/network/scripts | CRUD | Script templates |
Terminal API (terminal/api.py)
| Endpoint | Método | Descripción |
|---|
/api/terminal/sessions | GET/POST | Sesiones SSH |
/ws/terminal/{session_id} | WS | WebSocket terminal |
Estructura de Directorios
CreaRack_Pro_app_Django/
├── blueprints/ # App Django - Mapas
│ ├── api.py # Endpoints API
│ ├── models.py # Blueprint, Annotation, BlueprintConnection
│ └── services/
│ └── autoplan.py # Auto-Plan AI con Gemma 4 (Google AI Studio)
│
├── racks/ # App Django - Racks y dispositivos
│ ├── api.py # Endpoints principales
│ ├── api/library.py # Stencil library API
│ └── models.py # Rack, Device, Stencil, etc.
│
├── core/ # App Django - Core, auth, logs
│ ├── api.py # Status, search, logs
│ ├── models.py # User, Organization, SystemLog
│ ├── middleware/ # Middlewares de seguridad (v6.1.2)
│ │ ├── rate_limit.py # Rate limiting con Redis
│ │ └── csp.py # Content Security Policy
│ └── security/
│ └── credential_manager.py # Encriptación Fernet
│
├── network/ # App Django - Network management
│ ├── api.py # Endpoints de red
│ └── services/
│ ├── device_config.py # Helpers de configuración (v6.1.0)
│ └── scrapli_manager.py # Automatización multi-vendor
│
├── terminal/ # App Django - Terminal SSH
│ ├── api.py # Endpoints terminal
│ └── agent/ # Local Agent (standalone v4.3.1)
│ ├── local_agent.py # Main FastAPI app
│ ├── models.py # Pydantic schemas
│ ├── ssh_bridge.py # Conexiones SSH
│ ├── cluster_engine.py # Ejecución paralela
│ ├── network_utils.py # Ping, scan, ARP
│ ├── scrapli_manager.py # Multi-vendor local
│ ├── logging_handler.py # Logs WebSocket
│ ├── windows_integration.py # Registry Windows
│ └── assets/
│ ├── terminal.html
│ ├── debug.html
│ └── oui_vendors.json
│
├── config/ # Configuración Django
│ └── settings/
│ ├── base.py # Settings base
│ ├── dev.py # Desarrollo
│ └── production.py # Producción
│
├── static/ # Frontend assets
│ ├── js/
│ │ ├── base.js # Utils globales + escapeHtml()
│ │ ├── blueprints/ # Editor de mapas
│ │ ├── editor/ # Backups, SFTP, import/export
│ │ └── modules/ # Network tools
│ └── css/
│
├── templates/ # Templates Django
├── Documentation/ # (ARCHIVADA/eliminada abr-2026 → doc técnica en wiki del workspace)
├── tests/ # Sistema de validación
└── compose.yml # Docker Compose config
Repositorio GitHub
Última actualización: 29-01-2026
Véase también
- [[crearack-tech—architecture—saas-strategy-2026]] — estrategia SaaS 2026
- [[crearack-tech—architecture—saas-roadmap-2026]] — roadmap SaaS 2026
- [[crearack-tech—general—feature-catalog]] — catálogo de features del producto
- [[crearack-tech—backend—database-architecture]] — arquitectura de base de datos
- [[workspace-tech—tecnico—workspace-technical]] — arquitectura técnica del workspace
- [[decision—20260101—django-ninja-vs-drf]] — ADR Django Ninja como framework REST