@kruzer/idk
v1.4.0
Published
SDK oficial da plataforma Kruzer DevTools — conectores para bancos de dados, APIs, filas e storage em automações e gateways.
Maintainers
Readme
@kruzer/idk
SDK TypeScript oficial da plataforma Kruzer DevTools. Fornece conectores padronizados para que automações, triggers, consumers e endpoints de API Gateway acessem bancos de dados, APIs externas, filas de mensageria e serviços de storage de forma unificada.
Importante: este pacote é distribuído publicamente no npm apenas para facilitar a instalação. Ele requer uma conta na plataforma Kruzer para funcionar — o SDK não se conecta diretamente a nenhum sistema externo; todas as operações passam pelos microsserviços da plataforma, onde as credenciais e o multi-tenancy são resolvidos. Veja a licença.
Instalação
npm install @kruzer/idkNão é necessário token do npm nem configuração de registry.
Uso rápido
import { MySqlDataSource, RestDataSource } from '@kruzer/idk';
// O nome passado no construtor deve corresponder exatamente ao nome
// do conector configurado no painel iPaaS Kruzer.
const db = new MySqlDataSource('meu-conector-mysql');
// Query direta com bind variables
const rows = await db.query('SELECT * FROM pedidos WHERE status = :status', {
variables: { status: 'ABERTO' }
});
// Query pré-configurada no iPaaS (alias)
const resumo = await db.execute('resumo-pedidos-do-dia');
// Endpoint REST pré-configurado no iPaaS
const api = new RestDataSource('meu-conector-rest');
const resposta = await api.request('consulta-cep', { params: { cep: '01310-100' } });PostgreSQL
import { PostgresDataSource } from '@kruzer/idk';
const pg = new PostgresDataSource('meu-conector-postgres');
// Bind nomeado (:nome) ou posicional ($1) — o valor nunca entra no texto do SQL
const { data } = await pg.query('SELECT * FROM pedidos WHERE cliente = :cliente AND criado >= :desde::date', {
variables: { cliente: 42, desde: '2026-09-01' }
});
// Vários statements numa transação: qualquer erro desfaz tudo
await pg.transaction(
[
{ query: 'INSERT INTO pedidos (id, total) VALUES (:id, :total)', variables: { id: 1, total: '10.00' } },
{ alias: 'baixa-estoque', variables: { pedido: 1 } }
],
{ isolationLevel: 'REPEATABLE READ' }
);A resposta é { data, rowCount, command, fields }. int8/numeric chegam como string (sem perda de precisão).
Conectores disponíveis
| Conector | Classe | Operações |
| --- | --- | --- |
| MySQL | MySqlDataSource | query, execute (alias), command, multiInsert, ping |
| PostgreSQL | PostgresDataSource | query, execute (alias), transaction, command, multiInsert, ping |
| SQL Server | MsSqlDataSource | query, command (alias), procedure |
| Oracle | OracleDataSource | query, command (alias) |
| MongoDB | MongoDbDataSource | command (resource pré-configurado) |
| Redis | RedisDataSource | command (GET/SET/DELETE) |
| Kafka | KafkaDataSource | publishMessage, batchPublishMessages |
| REST | RestDataSource | request (endpoint pré-configurado) |
| Protheus (TOTVS) | ProtheusDataSource | command (resource) |
| SAP RFC | SapRFCDatasource | call |
| Azure Storage | AzureStorageDataSource | operações de storage |
| XLSX | XlsxDataSource | leitura/geração de planilhas |
AzureStorageDataSourcerecebe apenastenant?no construtor — não recebe nome de conector.XlsxDataSourceexige uma instância dewinston.Loggerno construtor.
O pacote também exporta os módulos de logging (logger, KrzLogger) usados pelas automações da plataforma.
Configuração
O SDK resolve autenticação e endereços dos microsserviços automaticamente conforme o contexto de execução:
- Dentro da plataforma Kruzer (automações, gateway): nada a configurar — o contexto de execução fornece tenant e autenticação.
- Desenvolvimento local: use a CLI da Kruzer (
krz) para autenticar; o SDK lê a configuração local da CLI. - Variáveis de ambiente (opcional):
TENANT,AUTH_TOKENe os endpointsAPI_SDK_*podem ser definidos explicitamente.
Documentação completa: kruzer.ai/docs
Licença
Este pacote não é open source. A instalação é pública, mas o uso é restrito a clientes, parceiros e colaboradores da Kruzer no contexto da plataforma. Veja o arquivo LICENSE.
© Kruzer. Todos os direitos reservados.
