Esta página contiene más detalles técnicos sobre cómo funciona la Integración de SQL Server con Power Omni. Úsela como referencia para comprender todos los aspectos y saber exactamente qué está configurando en su entorno.
Básicamente, la integración es un servicio de API que se sitúa entre Power Omni y la instancia de SQL Server. Este servicio es responsable de exponer los procedures de una base de datos como una API, permitiendo que se ejecuten mediante llamadas HTTPS POST, pasando los parámetros como JSON.
El siguiente diagrama muestra el flujo de datos que ocurre, y por qué componentes pasa, cuando Power Omni decide invocar un procedure de una instancia SQL:
sequenceDiagram
actor User
User ->> PowerOmni: Pregunta
PowerOmni ->> OpenAPI Connector: Proc {param1,param2}
OpenAPI Connector ->> SqlApi: HTTPS POST /spOmniProcName + ApiKey
SqlApi ->> SqlServerInstance: EXEC ProcName @Param ...
SqlServerInstance ->> SqlApi: ResultadoOError
SqlApi ->> OpenAPI Connector: Resultado
OpenAPI Connector ->> PowerOmni: Resultado
PowerOmni -> User: Respuesta
Cómo accede Power Omni a los Procedures
Power Omni no tiene acceso directo a su base de datos. Quien se conecta a la base de datos es el servicio de API creado por Power Tuning, que usted configura durante la instalación.
Este servicio se conecta a la instancia (usando la información de la cadena de conexión), obtiene los procedures y genera un esquema OpenAPI basado en los metadatos y comentarios de cada procedure. Este es el esquema que usted configura en los conectores de Power Omni.
Este esquema se asocia a un conector de tipo OpenAPI, compatible de forma nativa con Power Omni. Aquí es donde ocurre la magia que hace que su Power Omni conozca sus procedures: gracias al conector OpenAPI y al servicio que traduce procedures a un esquema OpenAPI, logramos crear un puente con su base de datos. Y el efecto que obtenemos es este: un agente que conoce sus procedures y parámetros, que puede ser invocado mediante HTTPS.
Cómo accede la API a la instancia SQL
Ahora que comprende el papel del servicio de API, es importante entender mejor cómo funciona.
Como se muestra en la imagen anterior, la API se sitúa entre Power Omni y su instancia SQL. Es la que realmente llega a su SQL Server. Y usted la configura proporcionando la cadena de conexión a su SQL Server.
En otras palabras, todos los permisos que utiliza están bajo el control de usted y/o del equipo que administra la base de datos. Lo que el servicio hace todo el tiempo es:
- Listar los procedures a los que tiene acceso y crear los endpoints
- Ejecutar los procedures cuando Power Omni lo solicita
Uno de los puntos principales que nos guiaron a desarrollar una solución que utiliza únicamente procedures, y no código SQL generado por IA, es la seguridad. Al definir los procedures con anticipación, usted tiene control total sobre qué código se ejecuta en su base de datos. Power Omni solo solicitará la invocación de procedures según sus parámetros, y es su responsabilidad crear el código del procedure. Esto trae ventajas y desventajas:
- Ventajas
- No existe el riesgo de que la IA ejecute comandos peligrosos o que puedan causar lentitud
- Reduce la posibilidad de alucinación en las respuestas, ya que usted puede guiar hacia el resultado correcto
- Usted tiene control total sobre qué objetos y comandos T-SQL se ejecutarán
- Desventaja
- La IA no tiene libertad para armar y descubrir tablas dinámicamente
- Usted necesita crear el código y la lógica
Incluso con procedures, usted aún puede permitir que su agente en Power Omni ejecute consultas creando un procedure que, por ejemplo, devuelva las tablas y descripciones de la base de datos, y otro que ejecute un comando SQL. Aunque esta no es una práctica que recomendemos todavía en esta versión de la integración.
En versiones futuras, podemos traer mejores soluciones que combinen respuestas más precisas con mayor libertad y seguridad para sus agentes. ¡Manténgase atento!
Seguridad de la API
Como se mencionó, la API es una aplicación web construida con Node.Js. De forma nativa, solo escucha endpoints HTTP y realiza algunas operaciones periódicamente. También admite la definición de API KEYS mediante variables de entorno, que pueden cambiarse fácilmente.
Sin embargo, usted puede agregar varias capas de seguridad. La más simple y obligatoria es colocarla detrás de HTTPS, ya que Power Omni no acepta un protocolo diferente en el conector OpenAPI. Las guías de despliegue de este artículo siempre le muestran cómo desplegar usando HTTPS y API KEYS.
Usted puede reforzar la seguridad según las políticas de su empresa de varias maneras:
- Colocarla detrás de su firewall, proxy, etc., y limitar el rango de IP
- Agregar verificaciones de rate limit o protecciones contra intentos de acceso por fuerza bruta
Nuestro equipo también realiza revisiones de seguridad de forma continua, buscando mantener el núcleo actualizado, robusto y seguro.