🪐 Desarrollo backend local, privado y preparado para trabajar con Git 🌟
Nexora es una aplicación de desarrollo backend local-first que reúne un cliente de APIs REST, un workspace MongoDB y un workbench PostgreSQL. Cada proyecto mantiene sus definiciones de peticiones en archivos revisables con Git, mientras los datos, credenciales y runtimes permanecen exclusivamente en local.
La distribución está disponible en Releases:
- Portable: extrae el ZIP completo y abre
Nexora.exe. Incluye MongoDB, PostgreSQL y sus bibliotecas; conserva la carpetaruntimes/junto al ejecutable. - Instalador
.exe: instala Nexora y los mismos motores para la cuenta de Windows actual. Prepara WebView2 si falta; ese primer paso puede necesitar conexión a Internet. - Código fuente: GitHub genera los archivos ZIP y TAR.GZ desde el tag de cada versión.
Para utilizar todos los motores incluidos, utiliza Windows 11 x64 y Microsoft Edge WebView2.
Windows 10 no figura en las plataformas soportadas de MongoDB;
no se garantiza el paquete completo en ese sistema. Compara las descargas con SHA256SUMS.txt
antes de utilizarlas. La versión 2.2.1 se distribuye sin firma Authenticode.
Puedes elegir cualquier carpeta para tus proyectos. El programa no instala servicios de bases de datos ni necesita una cuenta o un servidor en la nube. Los ajustes de interfaz y las credenciales pertenecen a la cuenta de Windows; el ZIP portable no convierte las credenciales existentes en transferibles entre equipos. Para mover una base a otra cuenta, exporta/restaura sus datos.
Nexora separa la interfaz React del núcleo nativo. Toda operación con red, archivos, credenciales o bases de datos atraviesa comandos Tauri validados y limitados mediante capabilities.
flowchart LR
subgraph Frontend["Interfaz de escritorio"]
Shell["React + TypeScript"]
Workspaces["API · MongoDB · PostgreSQL<br/>Historial · Monitores"]
Shell --> Workspaces
end
Bridge["IPC de Tauri<br/>capabilities limitadas"]
subgraph Core["Núcleo Rust"]
Commands["Comandos y validación"]
Http["Motor HTTP"]
Runtimes["Supervisores de runtimes"]
Storage["Persistencia y migraciones"]
Commands --> Http
Commands --> Runtimes
Commands --> Storage
end
Workspaces --> Bridge --> Commands
Http --> APIs["APIs locales o remotas"]
Runtimes --> MongoDB["MongoDB local o externo"]
Runtimes --> PostgreSQL["PostgreSQL local"]
Runtimes --> Keychain["Windows Credential Manager"]
Storage --> Versionable["requests/ · folders/ · monitors/<br/>Contenido versionable con Git"]
Storage --> Private[".nexora/runtime/<br/>Estado privado local"]
- Shell de escritorio modular con navegación entre espacios de trabajo.
- Selector inicial para abrir la carpeta raíz de un proyecto Nexora o crear uno nuevo.
- Cliente REST con ejecución HTTP real, status, headers, body, duración y tamaño de respuesta.
- Rutas, carpetas y monitores visibles en la raíz, con un JSON por recurso para obtener diffs claros en Git.
- Carpetas persistentes, menú contextual para renombrar o eliminar rutas y guardado automático.
- Detección de conflictos con cambios externos de peticiones y recarga confirmada desde el archivo.
- Cierre y cambio de proyecto coordinados con las escrituras pendientes.
- Pestañas de ruta cerrables con
Ctrl+Wsin permitir cerrar la última petición abierta. - Historial HTTP local con búsqueda, repetición y limpieza controlada.
- Monitores locales configurables, ejecución manual o periódica y registro en el historial.
- MongoDB local administrado por proyecto y conexión opcional a servidores externos.
- Consulta de MongoDB, creación de colecciones e inserción, edición y borrado de documentos.
- Inspección de esquemas e índices MongoDB.
- PostgreSQL 18.6 local administrado por proyecto, con esquemas, tablas, editor SQL y exportación CSV.
- Variables de sesión para resolver
{{referencias}}sin guardar secretos en el proyecto. - Búsqueda global con
Ctrl+Kpara módulos, peticiones, colecciones y tablas cargadas. - Ajustes locales persistentes y notificaciones Sonner para las operaciones principales.
- Transición SilkWave durante la carga del proyecto, ajustada al tamaño de sus datos locales.
- Diseño adaptable, navegación accesible y soporte para movimiento reducido.
Las escrituras PostgreSQL requieren confirmación y las lecturas se ejecutan dentro de una
transacción de solo lectura. El workbench utiliza el rol limitado nexora_app, separado del rol
administrativo interno. MongoDB exige filtros no vacíos para editar o borrar, y las URI externas
solo viven durante la sesión. El núcleo limita tiempos, respuestas HTTP, filas SQL, documentos
MongoDB y conexiones simultáneas para mantener estable la aplicación.
Las peticiones permiten realizar pruebas manuales y los monitores repetirlas mientras Nexora está abierto. No constituyen una suite de assertions ejecutable desde CI. Todavía no forman parte de esta versión los workflows API → diff de base de datos, la importación de cURL/OpenAPI/Postman ni la ejecución de monitores cuando Nexora está cerrado.
Los enteros MongoDB de 64 bits que exceden el rango exacto de JavaScript se representan mediante
$numberLong. Los valores PostgreSQL BIGINT fuera de ese rango llegan como texto a la tabla y al
CSV, evitando redondear identificadores. Esto no supone precisión arbitraria para números dentro de
columnas JSON/JSONB.
- Tauri 2 y Rust.
- React 19 y TypeScript.
- Vite y Bun.
- WebGL nativo para la animación SilkWave de inicio.
src/
├── app/ # arranque, providers, configuración y shell
├── modules/ # páginas, componentes, servicios y tipos por dominio
└── shared/ # componentes, servicios, hooks, estilos y tipos reutilizables
src-tauri/src/
├── commands/ # proyectos, HTTP, MongoDB y PostgreSQL
├── error.rs # errores serializables para IPC
└── state.rs # clientes, conexiones y supervisores de runtimes en memoria
Las importaciones internas utilizan el alias @/.
Requisitos: Bun 1.3.14, Node.js 24 para las pruebas WebDriver, Rust 1.98.0 y las herramientas C++
de Visual Studio para Windows. rust-toolchain.toml fija el compilador utilizado en CI.
bun ci
bun run devbun run dev solo previsualiza la interfaz. Para usar diálogos, proyectos y motores nativos debe
ejecutarse bun run tauri dev.
mi-proyecto/
├── .nexora/ # integración interna con la aplicación
│ ├── .gitignore # excluye runtime/
│ ├── project.json # identidad y versión del proyecto
│ └── runtime/ # datos de motores e historial local
├── folders/ # metadatos versionables de las carpetas
│ └── general.json
├── monitors/ # definiciones versionables, sin variables de sesión
│ └── monitor-<uuid>.json
└── requests/ # definiciones de peticiones versionables
└── general/
└── request-<uuid>.json
Versiona .nexora/project.json, .nexora/.gitignore y el contenido de folders/, monitors/ y
requests/. No ignores .nexora/ por completo: el manifiesto permite abrir el proyecto después de
clonarlo. Su subcarpeta runtime/ sí debe permanecer fuera de Git. La
guía del formato de proyecto incluye ejemplos JSON y el flujo de clonación.
Al abrir un proyecto creado con la versión 0.1, Nexora migra las definiciones ocultas al nuevo formato; si ya existe un archivo distinto en el destino, cancela la migración para evitar sobrescribir datos.
El guardado compara la petición con la versión cargada desde disco. Si Git u otro editor la ha modificado o eliminado, Nexora señala el conflicto y conserva el borrador, sin reemplazar el archivo detectado ni recrearlo. Recargar pide confirmación antes de sustituir el borrador por el contenido actual del archivo; si la lectura falla, el borrador se conserva. No hay resolución automática de conflictos ni vigilancia continua de cambios de Git.
Guardar una petición o un monitor sin cambios no reformatea su archivo ni genera diferencias innecesarias. Al cerrar Nexora o cambiar de proyecto, la aplicación espera las escrituras pendientes; si el guardado automático encuentra un error o conflicto, no completa la salida. Con guardado automático desactivado, pregunta antes de descartar cambios. Estas protecciones no sustituyen las copias de seguridad ni coordinan escrituras simultáneas de otros programas.
Los archivos de petición guardan referencias como Bearer {{token}}, no el valor de token.
Al ejecutar, Nexora resuelve variables en URL, nombres y valores de query y headers, y body. Las
referencias incompletas o sin valor producen un error antes de enviar tráfico. Nexora bloquea
credenciales directas o parcialmente ocultas en URLs, headers —también desactivados—, parámetros y
campos sensibles de bodies JSON o formularios.
El historial conserva un máximo de 500 ejecuciones en .nexora/runtime/, que está ignorado por Git. Solo
registra método, ruta sin query ni credenciales, estado y métricas; no persiste variables de sesión,
headers, cuerpos de petición ni cuerpos de respuesta. Los monitores ejecutan peticiones guardadas
mientras Nexora permanece abierto y utilizan los valores de sesión que existan en ese momento.
La programación comienza pausada en cada apertura: revisa las peticiones y pulsa Iniciar
programación para autorizarla en esa sesión. Un monitor habilitado en Git no inicia tráfico por
sí solo. Ejecutar ahora permite una ejecución manual sin activar la programación.
La distribución Windows incluye MongoDB Community Server 8.3.11. Nexora busca primero el motor
en runtimes/mongodb/8.3.11/ junto al ejecutable y, para desarrollo, en:
%LOCALAPPDATA%\Nexora\runtimes\mongodb\8.3.11\mongod.exe
El proceso se inicia oculto en 127.0.0.1 con un puerto libre, autenticación habilitada y datos
aislados en .nexora/runtime/mongodb. Nexora crea una credencial distinta por proyecto y guarda la
contraseña en Windows Credential Manager; no la escribe en Git ni la expone en la interfaz. Al
desconectar o cerrar Nexora, el proceso administrado se detiene.
Antes de recuperar un proceso MongoDB ya activo, Nexora comprueba que su carpeta de datos coincide con la del proyecto seleccionado; no adopta una instancia que utiliza otra carpeta.
La variable NEXORA_MONGOD_PATH permite utilizar otro ejecutable durante desarrollo. Se conserva
la detección del directorio legado 8.3.8 para instalaciones anteriores, pero los paquetes nuevos
incluyen 8.3.11. No se debe versionar mongod.exe dentro del repositorio.
Nexora utiliza el ZIP de binarios para Windows publicado por EDB y enlazado desde PostgreSQL.org.
La distribución incluye PostgreSQL 18.6 (paquete EDB revisión 3) en
runtimes/postgresql/18.6/pgsql/ junto al ejecutable. Para desarrollo también busca en:
%LOCALAPPDATA%\Nexora\runtimes\postgresql\18.6\pgsql\
No se importan archivos SQL ni bases SQLite. Al iniciar el espacio PostgreSQL, Nexora crea un
clúster real en .nexora/runtime/postgresql, lo enlaza exclusivamente a 127.0.0.1 en un puerto
libre y prepara la base nexora. Cada proyecto tiene una contraseña aleatoria almacenada en Windows
Credential Manager. Los datos, logs y credenciales quedan fuera de Git.
En Windows, el arranque utiliza pg_ctl para crear un proceso con privilegios reducidos, incluso
si Nexora se ha abierto como administrador. Se comprueban el PID y el puerto local del servidor;
no se desactiva UAC ni se registra un servicio de Windows.
Para recuperar una instancia PostgreSQL existente, Nexora también contrasta data_directory con la
carpeta de datos del proyecto. Coincidir en PID, puerto o credenciales no basta para adoptarla.
El rol nexora_admin queda reservado para la inicialización y el mantenimiento interno. Las
consultas de la interfaz utilizan nexora_app, sin privilegios de superusuario, creación de roles o
bases de datos ni pertenencia al rol administrativo. Los clústeres creados por versiones alpha
anteriores se migran al abrirse: Nexora crea el rol limitado y reasigna los objetos del proyecto sin
eliminar sus datos. En esos clústeres, nexora_local puede conservarse como bootstrap interno de
PostgreSQL, pero nunca se utiliza ni se expone como conexión del workbench.
La variable NEXORA_POSTGRESQL_HOME permite indicar otra distribución completa durante desarrollo;
debe apuntar a la carpeta que contiene bin, lib y share.
bun run fmt:check
bun run verify:version
bun run test:version
bun run audit:frontend
bun run verify:glib
bun run test:glib-guard
bun run typecheck
bun run typecheck:tests
bun run test:unit
bun run build
cargo fmt --manifest-path src-tauri/Cargo.toml -p nexora --check
cargo clippy --manifest-path src-tauri/Cargo.toml --locked -p nexora --all-targets --all-features --no-deps -- -D warnings
cargo test --manifest-path src-tauri/Cargo.toml --locked --all-targets
cargo build --manifest-path src-tauri/Cargo.toml --locked --release
cargo audit --file src-tauri/Cargo.lockLa suite E2E abre el binario de depuración en el WebView real de Tauri mediante WebdriverIO. Crea un proyecto Nexora y una API Bun temporales, comprueba la interfaz y ejecuta operaciones reales contra los runtimes locales de MongoDB y PostgreSQL. Al terminar detiene los procesos y elimina el proyecto de prueba.
bun run test:e2ePara repetir solo la suite sobre un binario E2E ya compilado:
bun run test:e2e:runEn Windows, estas pruebas requieren WebView2 y los binarios locales de MongoDB y PostgreSQL
descritos arriba. La característica Rust e2e y los permisos WebDriver están aislados en la
configuración src-tauri/tauri.e2e.conf.json; no se incluyen en el binario normal de producción.
Las pruebas reales de los runtimes son opcionales porque requieren sus binarios y Windows Credential Manager:
cargo test --manifest-path src-tauri/Cargo.toml runs_an_authenticated_project_database_end_to_end -- --ignored
cargo test --manifest-path src-tauri/Cargo.toml runs_managed_postgresql_end_to_end -- --ignored
cargo test --manifest-path src-tauri/Cargo.toml migrates_the_legacy_superuser_to_the_limited_application_role -- --ignoredGitHub Actions ejecuta en Windows las comprobaciones de formato, TypeScript, build frontend, auditorías de Bun y RustSec, Clippy, tests Rust, compilación con la característica WebView y build de Tauri. También descarga motores oficiales con SHA-256 fijado y ejecuta pruebas reales de MongoDB, PostgreSQL y WebView. Las regresiones frontend y del extractor ZIP se ejecutan en Windows y Linux. Dependabot agrupa las actualizaciones menores y parches para facilitar su revisión.
En Linux, CI comprueba además el backport oficial de seguridad de glib 0.18.5, la integridad de
su código y que Nexora y las regresiones resuelven exactamente esa misma copia local. Ejecuta los
iteradores afectados en modo optimizado con GLib real. No equivale a certificar la aplicación de
escritorio completa en Linux. Consulta la revisión de seguridad de 2.2.1.
node scripts/security/verify-glib-patch.mjs --metadata
cargo test --manifest-path scripts/security/glib-variant-iter/Cargo.toml --locked --releaseLa prueba nativa requiere pkg-config y libglib2.0-dev en Linux. No reformatees las dependencias
vendorizadas: usa los comandos de formato por paquete indicados arriba, no cargo fmt --all.
La comprobación de versión contrasta package.json, los manifiestos Tauri y Cargo, la entrada Nexora
del lockfile y la inyección utilizada por la pantalla inicial. Se ejecuta también antes de iniciar
Vite o compilar el frontend.
La auditoría frontend verifica primero el parche local de extract-zip contra archivos ZIP con
enlaces y entradas duplicadas, además de una extracción válida. Solo después acepta las dos
excepciones correspondientes a ese paquete, cuyo upstream no ofrece una versión corregida.
Los demás avisos de seguridad hacen fallar el control.
bun run tauri dev
bun run tauri buildNexora funciona sin cuentas, nube ni telemetría. Los proyectos y sus rutas de API permanecen en local y se pueden versionar con Git sin incluir los valores de las variables de sesión.
Para generar el instalador completo y el ZIP portable, consulta
scripts/release/README.md. El empaquetado comprueba versiones,
arquitectura y hashes, e incluye las licencias de los motores. Los binarios y el staging de
distribución quedan en artifacts/, excluido de Git.
Consulta SECURITY.md para conocer las versiones soportadas, el alcance y el proceso de reporte coordinado. No publiques vulnerabilidades, pruebas de concepto ni datos sensibles en un issue o pull request.
Nexora se distribuye bajo la licencia MIT.
Desarrollado con IA (GPT-5.6 Sol).

