# SFA-Sandbox // Suite Desktop Client 🇨🇱

Este directorio contiene la arquitectura y configuración para empaquetar la consola de **SFA-Sandbox** en una aplicación de escritorio nativa descargable para **Windows** (`.exe`) y **macOS** (`.dmg`).

Para brindarte la mejor experiencia de desarrollo y máxima flexibilidad, configuramos dos alternativas independientes de alto nivel:

---

## ⚡ Alternativa 1: Electron.js (Ejecución y Empaquetado Instantáneo)
*Esta es la vía más rápida y recomendada si ya tienes Node.js instalado, ya que no requiere configurar compiladores de Rust ni herramientas de C++ adicionales.*

### 🛠️ Pasos para ejecutar localmente:
1. Abre tu terminal (PowerShell o CMD) y navega al directorio de la app:
   ```bash
   cd c:\xampp\htdocs\fintech\desktop_app
   ```
2. Instala las dependencias necesarias:
   ```bash
   npm install
   ```
3. Lanza la aplicación de escritorio de forma instantánea:
   ```bash
   npm start
   ```

### 📦 Pasos para empaquetar el ejecutable (`.exe`):
Para empaquetar y generar el instalador distribuible de Windows de un solo clic:
```bash
npm run package
```
El instalador quedará generado dentro de la carpeta `desktop_app/dist/`.

---

## 🦀 Alternativa 2: Tauri (Compilación Nativa de Alto Rendimiento en Rust)
*Esta vía genera un ejecutable binario nativo ultraligero (pesa menos de 5MB y consume muy poca RAM), ideal para la distribución Enterprise oficial.*

### 🛠️ Prerrequisitos:
Para compilar en Tauri, necesitas tener instalado el compilador de Rust:
1. Descarga e instala **Rustup** desde [https://rustup.rs/](https://rustup.rs/).
2. Sigue las instrucciones en pantalla para configurar las herramientas de compilación de C++ en Windows (Visual Studio Build Tools).

### 🚀 Comandos de ejecución y compilación:
Una vez instalado Rust:
* **Ejecutar en modo desarrollo:**
  ```bash
  npm run tauri:dev
  ```
* **Compilar y generar el instalador de producción (.exe o .msi):**
  ```bash
  npm run tauri:build
  ```
Tauri compilará el backend en Rust de forma automática y empaquetará la interfaz de la consola segura en producción dentro del binario nativo.

---

## 🔒 Arquitectura de Seguridad
Ambos wrappers están configurados siguiendo estrictas políticas de seguridad:
* **Aislamiento de Contexto (`contextIsolation`):** Los scripts remotos cargados de la consola en producción no tienen acceso al sistema de archivos local de tu máquina.
* **Redireccionamiento Seguro:** Cualquier link externo (como correos, especificaciones oficiales o enlaces de ayuda) se abrirá automáticamente en el navegador web predeterminado del usuario, protegiendo la integridad de la sesión de escritorio.
