README_ES.md
Chat2DB
Un cliente de bases de datos y espacio de trabajo SQL con IA para desarrolladores, administradores de bases de datos, analistas y equipos de datos.
📣 ¡Novedades del equipo de Chat2DB! Acabamos de publicar como código abierto Nubase, nuestra nueva capa de despliegue para aplicaciones nativas de inteligencia artificial. Si Chat2DB le ayuda a gestionar datos con facilidad, Nubase le ayudará a desplegar sus herramientas y agentes de programación con IA sin complicaciones.
Apoye nuestro trabajo de código abierto y dé una ⭐️ a Nubase en GitHub.
Comparación de funciones
Community, Pro y Enterprise comparten las mismas funciones básicas del cliente de bases de datos. Las ediciones comerciales añaden IA oficial, almacenamiento en la nube, acceso multidispositivo, colaboración y gobierno sobre esa base, en lugar de sustituirla por otro motor de base de datos.
| Función | Community | Pro (personal en línea) | Enterprise |
|---|---|---|---|
| Conexiones a fuentes de datos y gestión de credenciales | ✅ | ✅ | ✅ |
| Plugins de bases de datos y exploración de metadatos | ✅ | ✅ | ✅ |
| Edición, autocompletado, formato y ejecución de SQL | ✅ | ✅ | ✅ |
| DDL/DML, gestión de objetos y edición de datos | ✅ | ✅ | ✅ |
| Importación y exportación de datos | ✅ | ✅ | ✅ |
| SQL guardado, historial y tareas | ✅ | ✅ | ✅ |
| Paneles y gráficos | ✅ | ✅ | ✅ |
| CLI y MCP | ✅ | ✅ | ✅ |
| Modelos de IA personalizados | ✅ | ✅ | ✅ |
| Créditos oficiales de IA e historial de chat en la nube | ❌ | ✅ | ✅ |
| Sistema de cuentas e identidad | ❌ | ✅ | ✅ |
| Nube y varios dispositivos | ❌ | ✅ | ✅ |
| Fuentes de datos de equipo y activos compartidos | ❌ | ❌ | ✅ |
| Miembros y roles | ❌ | ❌ | ✅ |
| Permisos, aprobaciones y auditoría | ❌ | ❌ | ✅ |
| Contexto de datos de la organización y base de conocimiento empresarial | ❌ | ❌ | ✅ |
Descarga e instalación
Chat2DB es una aplicación multiplataforma compatible con Windows, macOS y Linux. Puede descargar Chat2DB desde los enlaces siguientes:
Límite de seguridad de Community Edition
Warning
Chat2DB Community es una aplicación para un solo usuario y de uso local. No
proporciona cuentas de usuario, aislamiento entre inquilinos ni límites de
autorización entre varios usuarios. Mantenga el servicio HTTP enlazado a
127.0.0.1 o ::1 y no lo exponga directamente a otros usuarios ni a redes
que no sean de confianza.
Los controladores JDBC personalizados son código Java ejecutable. Instálelos solo desde fuentes de confianza. Los archivos de configuración, archivos comprimidos, archivos SQL, contenidos de bases de datos y respuestas de IA importados siguen siendo datos no confiables. Consulte la Política de seguridad para conocer el límite de confianza completo y el proceso de notificación de vulnerabilidades.
Instalación de Community Edition con Docker
Requisitos del sistema
Antes de instalar Chat2DB, asegúrese de que el sistema cumpla los requisitos siguientes:
- Docker 19.03.0 o posterior
- Docker Compose 2.0.0 o posterior (Compose V2)
- CPU >= 2 núcleos
- RAM >= 4 GiB
# Ejecútelo una vez desde un checkout del repositorio. Las ejecuciones posteriores reutilizan la misma clave válida.
./script/security/init-community-encryption-key.sh
docker run --detach \
--name chat2db-community \
--restart unless-stopped \
--publish 127.0.0.1:10825:10825 \
--volume "$HOME/.chat2db-community-docker:/root/.chat2db-community" \
--env CHAT2DB_COMMUNITY_ENCRYPTION_KEY_FILE=/run/secrets/chat2db-community-encryption.key \
--volume "$HOME/.config/chat2db-community/encryption.key:/run/secrets/chat2db-community-encryption.key:ro" \
chat2db/chat2db:latest
docker logs --follow chat2db-community
Abra http://localhost:10825. Para actualizar el contenedor, descargue la nueva imagen, elimine el contenedor anterior y vuelva a ejecutar el comando.
Chat2DB Community 5.3.0 utiliza el directorio independiente /root/.chat2db-community. No migra automáticamente los datos de imágenes anteriores que utilizaban /root/.chat2db.
Conserve ~/.config/chat2db-community/encryption.key entre reconstrucciones del contenedor y haga una copia de seguridad por separado. Si la sustituye o la pierde, las contraseñas de fuentes de datos y las claves API de modelos de IA guardadas anteriormente dejarán de ser legibles. El inicio con un valor de chat2db.mode distinto de DESKTOP, incluido el inicio web/headless habitual, falla si no se proporciona una clave válida.
El repositorio también incluye una definición de Compose:
./script/security/init-community-encryption-key.sh
docker compose --file docker/docker-compose.yml up --detach
docker run guarda los datos en $HOME/.chat2db-community-docker, mientras que Compose utiliza el volumen con nombre chat2db-community-data. Ambos métodos no comparten ni migran los datos automáticamente.
Clave de cifrado de Community
Chat2DB Community cifra las contraseñas de fuentes de datos y las claves API de modelos de IA configuradas por el usuario mediante AES-256-GCM. Ambas utilizan la misma clave de instalación con valores AAD autenticados independientes, por lo que el texto cifrado de un propósito no se puede descifrar como si perteneciera al otro. La clave debe ser Base64 válido y decodificarse exactamente en 32 bytes. El inicializador incluido genera el formato estándar con relleno: 44 caracteres Base64 terminados en =. Es material criptográfico, no una contraseña legible.
Cree una vez el archivo de clave predeterminado desde un checkout del repositorio:
./script/security/init-community-encryption-key.sh
La ruta predeterminada es ~/.config/chat2db-community/encryption.key. Para utilizar otra ruta, pásela al script y configure la misma ruta al iniciar Chat2DB:
./script/security/init-community-encryption-key.sh /secure/path/chat2db-community.key
java -Dloader.path=chat2db-community-server/chat2db-community-start/target/lib \
-Dchat2db.runtime.mode=community \
-Dchat2db.mode=WEB \
-Dchat2db.gui=false \
-Dchat2db.network.status=OFFLINE \
-Dchat2db.community.encryption-key-file=/secure/path/chat2db-community.key \
-Dserver.address=127.0.0.1 \
-Dserver.port=10825 \
-jar chat2db-community-server/chat2db-community-start/target/chat2db-community.jar
El script necesita openssl. La prioridad para seleccionar la ruta del archivo es: el argumento posicional, CHAT2DB_COMMUNITY_ENCRYPTION_KEY_FILE y, por último, la ruta predeterminada. El script reutiliza un archivo normal válido, rechaza enlaces simbólicos y archivos que no sean normales, y se niega a sobrescribir un archivo no válido. Mantenga la clave legible únicamente por el propietario del proceso de Chat2DB, consérvela entre actualizaciones y reconstrucciones del contenedor, y haga una copia de seguridad independiente del almacenamiento de las fuentes de datos.
La configuración de la clave se resuelve en este orden:
- Propiedad JVM
chat2db.community.encryption-keyque contiene la clave Base64. - Variable de entorno
CHAT2DB_COMMUNITY_ENCRYPTION_KEYque contiene la clave Base64. - Propiedad JVM
chat2db.community.encryption-key-fileque contiene la ruta del archivo de clave. - Variable de entorno
CHAT2DB_COMMUNITY_ENCRYPTION_KEY_FILEque contiene la ruta del archivo de clave. - Archivo predeterminado
~/.config/chat2db-community/encryption.key.
El primer valor configurado es el que se utiliza. Un valor vacío, Base64 mal formado, una clave que no se decodifica en 32 bytes o un archivo de clave no válido provocan un error de inicio en vez de continuar con el origen siguiente. Se recomienda configurar un archivo porque evita incluir el valor de la clave directamente en los argumentos del proceso o en las variables de entorno.
La creación automática del archivo de clave depende de chat2db.mode, no de chat2db.gui. El modo Community Desktop (chat2db.runtime.mode=community con chat2db.mode=DESKTOP) crea el archivo de clave seleccionado si no hay una clave en línea configurada y el archivo no existe. Cualquier modo que no sea Desktop, incluido el inicio web/headless habitual, nunca crea una clave que falte y genera un error hasta que se proporcione o inicialice una clave válida. La clave resuelta se almacena en caché durante la vida del proceso, por lo que los cambios en la configuración requieren reiniciar la aplicación. Si se sustituye o se pierde la clave, las contraseñas de fuentes de datos y las claves API de modelos de IA guardadas anteriormente dejan de ser legibles.
Desarrollo
Entorno de ejecución
- Entorno de ejecución de Java: Eclipse Temurin 17
- Entorno de ejecución de Node.js: Node.js 18.17.0 o posterior
- Maven 3.8 o posterior
Clonar el repositorio localmente
git clone git@github.com:OtterMind/Chat2DB.git
Depuración del frontend
Use Yarn con el archivo de bloqueo incluido en el repositorio.
cd Chat2DB/chat2db-community-client
yarn install --frozen-lockfile
yarn run start:community:hot
Depuración del backend
cd Chat2DB
mvn -B clean package -Dmaven.test.skip=true -Dchat2db.finalName=chat2db-community \
-f chat2db-community-server/pom.xml \
-pl chat2db-community-start -am
./script/security/init-community-encryption-key.sh
java -Dloader.path=chat2db-community-server/chat2db-community-start/target/lib \
-Dchat2db.gui=false \
-Dchat2db.runtime.mode=community \
-Dchat2db.mode=WEB \
-Dchat2db.network.status=OFFLINE \
-Dchat2db.community.encryption-key-file="$HOME/.config/chat2db-community/encryption.key" \
-Dserver.address=127.0.0.1 \
-Dserver.port=10825 \
-Dspring.profiles.active=dev \
-jar chat2db-community-server/chat2db-community-start/target/chat2db-community.jar
Compilar una imagen de Docker local
./docker/docker-build.sh 5.3.0 chat2db/chat2db:5.3.0
Contribuciones
Agradecemos los informes de errores, las solicitudes de funciones, las mejoras de documentación, los comentarios sobre pruebas y las pull requests de la comunidad.
Antes de abrir una incidencia o enviar una pull request, lea nuestra Guía de contribución. Explica cómo informar de errores, sugerir mejoras y facilitar la revisión de contribuciones por parte de los mantenedores.
- Para errores y solicitudes de funciones, utilice GitHub Issues.
- Para preguntas, ayuda de configuración y debates abiertos, utilice GitHub Discussions.
- Si su pull request está relacionada con una incidencia, incluya el enlace en su descripción.
Contacto
- Correo electrónico: Chat2DB@ch2db.com
- Discord: Únase a nuestro servidor de Discord
- X: @Chat2DB_AI
- YouTube: Canal de Chat2DB
- GitHub: Chat2DB en GitHub
Agradecimientos
Gracias a todas las personas que han contribuido a Chat2DB.
Historial de estrellas
Licencia
La versión 5.3.0 y posteriores de Chat2DB Community están disponibles bajo los términos de licencia de este repositorio. Se trata de una licencia de código disponible basada en Apache License 2.0 con condiciones adicionales. Las versiones de Chat2DB publicadas antes de la 5.3.0, incluida la 0.3.7 y las etiquetas históricas anteriores, siguen estando disponibles bajo Apache License 2.0.