sc-mikrotik
v0.1.0
Published
TypeScript client for the MikroTik RouterOS REST API.
Downloads
23
Maintainers
Readme
sc-mikrotik
Cliente TypeScript para a API REST do MikroTik RouterOS.
Instalação
npm install sc-mikrotikUso
import { Mikrotik } from "sc-mikrotik";
const client = new Mikrotik({
baseUrl: "https://192.168.1.111/rest",
username: "admin",
password: "asdf1234",
insecure: true,
});
const systemResources = await client.SystemResourcePrint();
const systemIdentities = await client.SystemIdentityPrint();
const ipAddresses = await client.IPAddressPrint();
const pppSecrets = await client.PPPSecretPrint();
console.log(systemResources[0]?.platform);
console.log(systemIdentities[0]?.name);
console.log(ipAddresses[0]?.address);
console.log(pppSecrets[0]?.name);Retorno dos métodos
Os métodos *Print() seguem o comportamento observado no RouterOS REST e retornam arrays:
SystemResourcePrint(): Promise<SystemResourcePrintResponse[]>SystemIdentityPrint(): Promise<SystemIdentityPrintResponse[]>IPAddressPrint(): Promise<IPAddressPrintResponse[]>PPPSecretPrint(): Promise<PPPSecretPrintResponse[]>
Mesmo quando o endpoint representa um único item lógico, como system/resource/print e system/identity/print, a API REST do MikroTik retorna uma lista com um item.
Scripts
npm run build
npm test
npm run check:packagePublicação no npm via GitHub Actions
O repositório já fica preparado para publicar no npm pelo workflow em .github/workflows/publish.yml.
Pré-requisitos
- Configurar o pacote no npm com Trusted Publishing apontando para o workflow publish.yml deste repositório
- Garantir que o nome do pacote em package.json esteja disponível no npm
- Atualizar a versão em package.json antes de cada push para deploy
Como publicar
- Atualizar a versão em package.json
- Commitar e enviar as mudanças para a branch deploy
- O GitHub Actions executa npm ci, npm run build e npm publish --provenance usando OIDC, sem NPM_TOKEN
- Depois do publish, o workflow cria uma GitHub Release com a tag v
- A página da release resume os commits desde a última tag, agrupando feat, fix, refactor, docs, test e chore
Se a tag da versão já existir, o workflow pula o publish e a criação da release para evitar duplicidade no npm.
O erro EOTP acontece quando a publicação usa um token tradicional que ainda exige código 2FA. Com Trusted Publishing, o npm autentica o workflow via OIDC e elimina essa dependência de OTP no CI.
api-ssl(porta 8729) → usado por bibliotecas MikroTikwww-ssl(porta 443) → usado pelo REST (/rest/...)
Você está usando REST → então o certificado precisa estar no www-ssl, não só no api-ssl.
💡 Se ainda der erro
Tenta forçar TLS 1.2 no curl (Windows às vezes dá bug com TLS):
curl --tlsv1.2 -k -u admin:asdf1234 https://192.168.1.111/rest/system/resource