Arquitetura
Descreve como funciona o conector com o SQL Server
Esta página é contém alguns detalhes mais técnicos de como a Integração do SQL Server com o Power Omni funciona. Utilize como uma referência para entender todos os aspectos para que você saiba exatamente o que está configurando no seu ambiente.
Basicamente, a integração é um serviço de API que fica entre o Power Omni e a instância SQL Server. Este serviço é responsável por expor as procedures de um banco de dados como API, permitindo que que elas sejam executadas através de chamadas HTTPS POST, passando os parâmetros como um JSON.
O seguinte diagrama mostra o fluxo de dados que ocorre, e por quais componentes passam, quando o Power Omni decide invocar uma procedure de uma instância SQL:
Como o Power Omni acessa as Procedures
O Power Omni não tem acesso direto ao seu banco. Quem conecta no banco, é o serviço de API criado pela Power Tuning, e que você configura na instalação.
Esse serviço conecta na instância (usando as informações da string de conexão), obtém as procedures e gera um schema OpenAPI com base nos metadados e comentários de cada procedure. Esse é o schema que você configura nos conectores do Power Omni.
Esse schema é associado com um conector do tipo OpenAPI, suportado nativamente pelo Power Omni. É aqui que está a mágica que faz o seu Power Omni conhecer suas procedures: Graças ao conector de OpenAPI e ao serviço que traduz as procedures para um schema OpenAPI, nós conseguimos criar uma ponte com o seu banco de dados. E o efeito que temos é esse: Um agente que conhece as suas procedures e parâmetros, que podem ser invocadas via HTTPS.
Como a API acessa a Instância SQL
Agora que você entende o papel do serviço de API, é importante conhecer melhor como ela funciona.
Conforme a imagem anterior, a API fica entre o Power Omni e sua instância SQL. É ela quem, de fato, consegue chegar no seu SQL Server. E você faz na configuração, onde coloca a string de conexão com o seu SQL Server.
Ou seja, todas as permissões que ela usa estão sob seu controle e/ou do time que gerencia o banco de dados. O que o serviço o tempo inteiro é:
Listar as procedures que ele tem acesso e criar os endpoints
Executar as procedures quando o Power Omni pede
Um dos principais pontos que nos guiamos para desenvolver uma solução que usasse apenas procedures, e não código SQL gerado pela IA, é a questão de segurança. Definindo procedures previamente, você tem o total controle sobre que código é executado no seu banco de dados. O Power Omni vai apenas solicitar a invocação de procedures conforme os parâmetros da mesma, e é de sua responsabilidade criar o código da procedure. Isso traz vantagens e desvantangens:
Vantagens
Não tem o risco da IA executar comandos perigosos ou que podem causar alguma lentidão
Reduz a chance de alucinação nas respostas, já que você pode guiar para o correto resultado
Você tem total controle sobre quais objetos e comandos T-SQL serão executados
Desvantagem
A IA não tem liberade para montar e descobrir tabelas dinamicamente
Você precisa criar o código e lógica
Mesmo com procedures, você ainda pode deixar seu agente no Power Omni livre para executar consultas, criando uma procedure que, por exemplo retorna as tabelas e descrições do banco, e outra que roda um comando SQL. Apesar de não ser uma prática que recomendamos nesta versão da integração ainda.
Em futuras versões, podemos trazer soluções melhores que combinem respostas mais precisas com maior liberdade e segurança para os seus agentes! Fique ligado!
Segurança da API
Conforme mencionado, a API é uma aplicação web com Node.Js. Nativamente, ela apenas escuta nos endpoints HTTP e faz algumas operações periodicamente. Ela também suporta as definições de API KEYS usando variáveis de ambiente, que podem ser trocadas facilmente.
Porém, você pode adicionar várias camadas de segurança. A mais simples e obrigatória é colocar atrás do protocolo HTTPS, já que o Power Omni não aceita um protocolo diferente no conector de OpenAPI. Os guias de deploy desse artigo sempre te mostram como fazer o deploy usando HTTPS e com API KEYS.
Você pode incrementar a segurança conforme as políticas da sua empresa de várias maneiras:
Colocar sob o seu firewall, proxy, etc e limitar o range de IPs
Adicionar checks de rate limit ou tentativa de acesso de força bruta
Nosso time também constatemente fará as revisões de segurança, procurando manter o core atualizado, robusto e seguro.
Atualizado