Sistema de microservicios para la traducción y ejecución de consultas SQL a CQL (Cassandra Query Language), con gestión completa de usuarios, permisos y bases de datos.
Este proyecto implementa una arquitectura de microservicios que permite:
- Traducción automática de consultas SQL a CQL
- Gestión de usuarios con autenticación y autorización
- Control de permisos granular por operaciones y keyspaces
- Administración de bases de datos Cassandra
El sistema está compuesto por 3 microservicios independientes:
Base URL: http://localhost:3000/api
Responsabilidades:
- Traducción de SQL a CQL
- Ejecución de consultas en Cassandra
- Normalización de nombres de keyspaces
Endpoints:
POST /translator/translate- Traduce consultas SQL a CQLPOST /translator/execute- Ejecuta consultas SQL/CQL
Base URL: http://localhost:3001/api
Responsabilidades:
- Autenticación de usuarios
- Registro de nuevos usuarios
- Gestión de contraseñas
- Administración de usuarios (activar/desactivar/eliminar)
Endpoints:
POST /auth/login- Inicio de sesiónPOST /users- Registro de usuariosGET /users/find-by-cedula/{cedula}- Búsqueda de usuariosPOST /users/admin/generate-temp-pin- Generar PIN temporalPOST /users/verify-credentials- Verificar credencialesPOST /users/change-password- Cambiar contraseñaDELETE /admin/users- Eliminar usuarioPOST /admin/users/deactivate- Desactivar usuario
Base URL: http://localhost:3002/api
Responsabilidades:
- Gestión de permisos por operación
- Asignación de keyspaces a usuarios
- Control de roles (admin/usuario)
- Administración de keyspaces
Endpoints:
GET /admin/keyspaces- Obtener todos los keyspacesGET /admin/keyspaces/user?cedula={cedula}- Keyspaces de usuarioPOST /admin/keyspaces/updateuser-keyspaces- Actualizar keyspaces de usuarioPOST /admin/keyspaces/updatesingle-keyspace- Añadir/quitar keyspace individualGET /admin/keyspaces/search?keyspaceName={name}- Buscar keyspaceGET /admin/keyspaces/{keyspace}/users- Usuarios con acceso al keyspaceDELETE /admin/keyspaces- Eliminar keyspaceGET /admin/keyspaces/tables?keyspace={keyspace}- Obtener tablas de keyspaceDELETE /admin/keyspaces/cache/tables/{keyspace}- Invalidar caché de tablasPOST /admin/permissions/search- Buscar usuario para cambio de rolPOST /admin/permissions/change-role- Cambiar rol de usuarioPOST /admin/permissions/get-user-permissions- Obtener permisos de usuarioPOST /admin/permissions/update-user-permission- Actualizar permisos
- Node.js
- NPM
- Cassandra
- Puertos 3000, 3001, 3002 disponibles