Plataforma de desenvolvimento · REST · Webhooks · SDKs

Faça sua plataforma Al-operável.

OpsIQExpõe um REST limpoAPIDefina quais eventos disparam do seu sistema, quais ações a IA pode executar, e quais dados são seguros para ler.OpsIQLida com assinaturas, repetições, registros de auditoria e fluxos de confirmação para você.

HMAC-SHA256 para ambos os lados.PHP · Node · SDKs de PythonOpenAPI3.0.3contrato100% cobertura de auditoria
Pedido assinado.
"Teia de saída"200Está bem.
Viva Rolo → OpsIQ__ → Webhook assinado POST /v1/actions/run X-OpsIQ-Assinatura { "action": "Reembolso de factura", "confirmado": verdade VERIFY · CORRER · AUDITORIA Assinatura . Papel + escopo Linha de auditoria escrita @opsiq/sdkwidget em ("ação. executada") Verifique HMAC → manusear 200Está bem.
3PHP, Node, Python
HMACSHA...256Assinado em cada pedido.
40+Eventos universais para se inscrever
100%cobertura de auditoria-log sobre ações
O ciclo de vida do pedido.

Pedido de entrada. -Teia desligada.

Você POST para oOpsIQ APICom sua chave de portador.OpsIQVerifica o escopo e o papel, executa a ação contratada, escreve uma linha de auditoria, então dispara um webhook assinado pelo HMAC de volta ao seu ponto final.

Webhooks de HMAC-SHA256 - entrada e saída de carga de ganchos são assinados sobre o corpo cru;APIChama autenticar com uma chave de portador.
Retornos automáticos - entregas com falha voltam e tentam novamente, com um ID de entrega que você pode rastrear.
Chaves de indecência - Replay-seguro por design, então uma entrega re-tentada nunca age duplamente.
Seu aplicativo. POST /v1/actions/run X-OpsIQ-Assinatura X-OpsIQ- Timestamp VERIFY - CORRER - AUDITORIA Seu ponto final POST /webhooks Verifique HMAC. 200Está bem. assinatura verificada escopo + função verificada execução de ação contratada Linha de auditoria escrita PAGAMENTO DE WEBHOOK { "Evento""Ação. Executada", "Entrega": "dlv_8f2a9", "Impotência_chave": "idem_31c7", "Assinatura"Sha256=9c4e0a7b..." } Entregue.
01 Pedido assinado. 02 Verifique HMAC. 03 - É um contrato. 04 Escreva a linha de auditoria 05 "Anzóis" assinados.
-Rápido!

De zero a uma integração ao vivo em Quatro passos.

Gere uma chave, deite fogo no seu primeiro evento, assine um webhook, registre uma ação, você pode rodar o loop inteiro contra a caixa de areia antes de tocar os dados da produção.

Console da caixa de areia.Conectado.
CONSOLE DESENVOLVIMENTO · Sandbox 1· Gerar a chave Opq_live_xxx · uma chave de portador escopo 2· Dispare um evento POST/v1/events/fire"Ordem. Navegada" 3Assine um webhook. → https://api.you.com/webhooks 4Registre uma ação. Saas. Reembolso da factura auditada
PromovaSandbox → produção, mesmo código
01

Pegue uma chave.

Registre-se e gere um portador de escopo.APIChave (opq_…) em configurações de desenvolvimento, e dar a cada integração apenas as superfícies que ele precisa.

02

Fogo e assinatura

POSTE UM ASSINATO events/fire (ou use um SDK), então aponte qualquer URL em qualquer evento, assinado, com uma identificação de entrega e repetições de retrocesso.

03

Registre uma ação.

Declare um contrato assinado para que a IA possa executar operações com segurança, com verificação de papéis, política de confirmação e uma pista completa de auditoria.

Como se encaixam

Um padrão de conector. Cinco primitivos limpos.

Qualquer coisa específica de plataforma vive em um conector.OpsIQO núcleo continua genérico, a IA permanece previsível, e sua integração permanece auditável.

01
Gatilhos

Diga.OpsIQO que aconteceu.

Dispare eventos universais da sua plataforma ou seus próprios nomes de eventos personalizados.

Referência do evento
invoice.paid Events. fire () Cérebro de IAContexto ao vivo Regrasprioridade.20 espelhoEscreva primeiro. WebhookAssinado.
Eventos universais + personalizadosinvoice.paid, ticket.created, subscription.cancelled, customer.signed_up Ou o seu próprio. Assinantes de fãs.O cérebro da IA, regras de automação, conectores de espelho e seus terminais de webhook todos reagem. Ordem PrioritáriaEnvio determinístico para que os espelhos escrevam antes de alertar o fogo.
02/ Contratos de ação

Diga.OpsIQO que a IA está autorizada a fazer.

Um contrato de ação é assinado.JSONDeclaração: o que a ação faz, quais papéis podem executá-la, quais parâmetros ela aceita, se a confirmação é necessária, e o ponto final para ligar.

Esquema de ação.
A IA não pode inventar ações.Só pode pedir para executar os que você registrou. Política de confirmaçãoAções arriscadas desencadeiam um cartão antes de qualquer efeito colateral. Papel + revestimento superficialCada ação declara os papéis e superfícies permitidos para executá-lo.
contrato de ação -JSON
{
  "key": "saas.refund_invoice",
  "label": "Refund a paid invoice",
  "surface": ["admin"],
  "roles": ["owner", "billing_admin"],
  "requires_confirmation": true,
  "params": {
    "invoice_id": { "type": "int", "required": true },
    "reason": { "type": "string", "max": 500 }
  },
  "endpoint": "https://api.you.com/refund",
  "audit": true
}
03/ Anzóis assinados

Empurre os eventos para sua pilha com provas criptográficas.

Assine qualquer um.URLpara qualquer evento.OpsIQPosts oJSONCarga assinada com HMAC-SHA256 sobre o corpo cru - verifique em algumas linhas.

Reproduzir proteçãoID de entrega rastreávelRecuar as tentativas
Referência Webhook
Verifique o webhook - php
$raw = file_get_contents('php://input');
$sig = $_SERVER['HTTP_X_OPSIQ_SIGNATURE'] ?? '';
$expected = hash_hmac('sha256', $raw, $secret); // hex digest, no prefix
if (!hash_equals($expected, $sig)) http_response_code(401);
$event = json_decode($raw, true);
04/ Kits de desenvolvimento

Clientes para o idioma que você já usa.

Três SDKs oficiais lidam com autenticação, assinatura, retries, chaves de indempotência e respostas digitadas ou ficam livres de frameworks, cada SDK_ é uma embalagem fina ao redor da mesma superfície do REST.

Exemplos de clientes
import { OpsIQ } from "@opsiq/sdk";
const ops = new OpsIQ({ apiKey: process.env.OPSIQ_KEY });

await ops.events.fire("order.shipped", {
  customer_id: 421,
  order_ref: "NB-9182",
  carrier: "DHL"
});

const result = await ops.actions.run("saas.send_kb_link", {
  ticket_id: 5519,
  article: "how-to-reset-password"
});
use OpsIQ\Client;

$ops = new Client([
  'api_key' => getenv('OPSIQ_KEY'),
]);

$ops->events->fire('order.shipped', [
  'customer_id' => 421,
  'order_ref' => 'NB-9182',
]);

$result = $ops->actions->run('saas.send_kb_link', [
  'ticket_id' => 5519,
  'article' => 'how-to-reset-password',
]);
from opsiq import OpsIQ

ops = OpsIQ(
    api_key=os.environ["OPSIQ_KEY"],
)

ops.events.fire("order.shipped", {
    "customer_id": 421,
    "order_ref": "NB-9182",
})

result = ops.actions.run("saas.send_kb_link", {
    "ticket_id": 5519,
    "article": "how-to-reset-password",
})
PHP 8.4_+Node. js 18+Python 3.10_+REST · OpenAPI3.0.3
05/ O padrão do conector

Conectar qualquer coisa.

Um conector é uma pasta com uma classe PHP.OpsIQDescobri-lo, o registro fios os eventos, e seu código específico plataforma permanece perfeitamente separado do núcleo.

Guia de conexão
Cinco ganchos.identityProviders(), contextProviders(), registerActions(), subscribers(), handleWebhook(). Manifesto-conduzidoactions.json e settings.json declarem contratos e config. AutodescobertaDeixe a pasta entrar, assine, habilite-a na administração.
Da intenção à ação segura.

Inglês puro. Operação auditada desligada.

OpsIQEle percorre os contratos registrados, prepara a carga útil, pede confirmação quando a ação requer, e produz uma linha de auditoria completa quando executa, então uma IA que pode Atue. Nunca se torna uma IA em que não se pode confiar.

Contrato-ligado. A IA só propõe ações que você registrou.
Confirme antes dos efeitos colaterais. Ações arriscadas surgem primeiro.
Relembrar totalmente. Cada resposta rápida e ação, resultado capturado na história da IA.
4PassosIntenção → auditoria
HMACassinado antes de executar
"Reembolso da última fatura de Adam" Passo 1_ · resolução de intenção → igualado: Saas. refund_fair Superfície: admin · papel: proprietário · Passo 2_ validate Passo 3 · Confirme e assine Cartão de pré-visualização · fatura #8421 Confirmar Passo 4_ · Audição linha Ator, resultado.412ms Apenas para o proprietário, exportável como CSV
Nenhuma chamada inventada.Apenas registro de contrato
Confirmado.Previsão antes dos efeitos colaterais
100%Auditado.Prompt + resposta + resultado
Referência

API superfície em um olhar.

Todos os pontos centrais, sua permissão, indempotência e o limite de taxa por chave.3.0.3Referência.

OpenAPI 3.0.3_ referência
Ponto finalAuth.IdempotenteLimite de taxa
Escreva.Superfícies de efeitos colaterais assinadas.
POST /v1/events/fireHMACSim.1000 __ min
POST /v1/actions/runHMACSim.200 __ min
POST /v1/webhooks/testHMACSim.60 __ min
LeiaContexto, ingressos e inventário de conectores.
GET /v1/customers/{id}HMACSim.2000 __ min
GET /v1/ticketsHMACSim.2000 __ min
GET /v1/connectorsHMACSim.2000 __ min

Limites de taxa são por chave e retornam em cada resposta como X-OpsIQ-RateLimit-Remaining; Excedendo um limite retorna 429 com um Retry-After O contrato completo de leitura automática (cada ponto final, esquema e erro) vive na OpenAPI 3.0.3_ referência.

Construa um conector.

Envie um conector para dentro. Cinco passos.

Um conector é uma pasta auto-suficiente.OpsIQdescobre, o registro liga os eventos, e seu código específico da plataforma nunca vaza para o núcleo.

1Andar de pasta com connector.php estendendo AbstractConnector.
2Declarar actions.json e settings.json - Manifesta.
3Implementar identidade, contexto e provedores de webhook.
4Assine os eventos que você gosta.
5Assine, coloque-o, habilite-o na administração.
Teste antes de embarcar.

Uma chave de caixa de areia e um verificador de ganchos.

Cada espaço de trabalho expõe uma caixa de areia: uma chave separada que atinge o mesmo.APIsuperfície sem tocar dados de produção. POST /v1/webhooks/test As instalações auto-hospedeiras executam o caminho de código idêntico, sem desvio comportamental entre nuvem e on-prem.

Chaves de caixa de areia Tester de lança. Empregos dirigidos por Cron Nuvem e paridade auto-hospedada
Connector. php · php
Classe AcmeConnector Se estende AbstractConnector { Função pública chave (): string { Volte. 'acme'; } / Resolva quem é o ator Função pública IdentidadeProviders(): Array { Volte. [novo AcmeIdentityProvider()]; } // Transmita dados ao vivo para o alerta de IA Função pública ContextoProviders(): Array { Volte. [novo AcmeContextProvider()]; } ~ Reagir paraOpsIQeventos Função pública assinantes(): Array { Volte. [Fatura. Pagado. => [novo BillingMirror()]]; } Receba os hooks da internet de Acme Função pública - Lidar com o Webhook.Array $body): vazio { /* … */ } }
Como se compara

OpsIQ vs um Integração de DY.

Que plataforma de contrato, assinada e auditada, dá a você que enrolar seus próprios webhooks e encanamento de IA nunca vai funcionar.

CapacidadeRole o seu próprioOpsIQ
HMAC-signed requests & webhooks (both ways) Hand-rolled
Idempotency keys + replay protection DIY
Automatic back-off retries with delivery IDs DIY queue
Action-contract registry (AI can't invent calls)
Confirmation policy before side-effects
100% audit-log coverage on actions Manual logging
Official PHP / Node / Python SDKs Write your own
OpenAPI 3.0.3 machine-readable contract Maybe
Sandbox keys + webhook tester Build a staging rig
Cloud & self-hosted parity (same code path) Varias
Connector pattern: platform code stays isolated
FAQ

Perguntas de desenvolvedor, -Respondeu.

Auth, assinaturas, SDKs, sandboxing e o modelo de conector: tudo que você vai pedir antes do primeiro pedido.

APIChama a autenticação com uma única chave de portador: enviar Authorization: Bearer opq_…. OpsIQOs webhooks são separados: cada webhook.OpsIQEnvia um. X-OpsIQ-Signature (um HMAC-SHA256 Hex do corpo cru) e um X-OpsIQ-Timestamp Para proteção de repetição, então pode nos verificar em troca, e os hooks que você envia são verificados da mesma forma.
Não, a IA só pode propor ações que existem no seu registro de contrato de ação, não pode inventar uma chamada, cada contrato declara as superfícies, papéis e parâmetros permitidos, e qualquer ação marcada, requires_confirmation Aparece um cartão de pré-visualização para um humano antes do efeito colateral ser executado.
Recomponha hash_hmac('sha256', $rawBody, $secret) (um feitiço digerir sem prefixo) e compará-lo com o X-OpsIQ-Signature Cabeçalho com uma verificação constante do tempo (hash_equalsCada entrega também carrega uma senha, uma chave de indemnidade e uma identificação de entrega que você pode rastrear.
Entregas que não retornam200Você pode rastrear todas as tentativas por identificação de entrega em administração ou seus registros.
Os SDKs oficiais para PHP 8.4+, Node. js 18+ e Python 3.10+ assinam, repetem, chaves de indemnidade e digitam as respostas, são embalagens finas ao redor da superfície do REST, então você também pode gerar seu próprio cliente a partir do contrato publicado OpenAPI 3.0.3_ ou chamar o API diretamente.
Cada espaço de trabalho expõe uma caixa de areia com sua própria chave que atinge a mesma área.APIsuperfície sem tocar dados de produção, mais POST /v1/webhooks/test para disparar uma amostra assinada no seu ponto final e confirmar sua verificação antes de ir ao vivo.
Instala auto-anfitriões executam o caminho de código idêntico (a mesma assinatura, o mesmo registro de conectores, o mesmo contrato OpenAPI) para que não haja deriva comportamental entre nuvem e on-prem.
Um conector é uma pasta auto-suficiente com uma classe PHP estendendo-se AbstractConnector, mais actions.json e settings.json Você implementa o que eu digo. identityProviders(), contextProviders(), registerActions(), subscribers() e handleWebhook(). OpsIQAuto-descobre, liga os eventos e mantém seu código específico da plataforma bem separado do núcleo.