Plataforma de desenvolvimento · REST · webhooks · SDKs

Faça sua plataforma - Al-operável.

OpsIQ_ expõe um REST limpo API, webhooks assinados pelo HMAC, um registro de contrato de ação e SDKs prontos para o navio. Defina quais eventos disparam do seu sistema, quais ações a IA é permitida executar e quais dados são seguros para ler. OpsIQ_ lida com assinaturas, repetições, registros de auditoria e fluxos de confirmação para você.

HMAC-SHA256 de ambos os modosPHP · Nó · Python SDKsContrato OpenAPI 3.0.3100% cobertura de auditoria
Pedido assinado
Webhook assinado para fora → 200 OK
Vivo curl → OpsIQ → webhook assinado POST /v1/actions/run X...OpsIQ-Assinatura { "action": "fatura de reembolso", "confirmado": verdadeiro VERIFY · RUN · AUDITORIA assinatura ⇩ papel + âmbito de aplicação ⇩ linha de auditoria escrita @opsiq/sdk widget on("action. executed") verificar HMAC → manípulo 200_ OK
3SDKs oficiais: PHP, Node, Python
HMACSHA...256assinado em cada pedido
40+eventos universais para subscrever
100%cobertura do diário de auditoria sobre as acções
O ciclo de vida do pedido

Pedido de entrada. - O Webhook está a sair.

Você POST para OpsIQ API com sua chave de portador escopo. OpsIQ verifica escopo e função, executa a ação contratada, escreve uma linha de auditoria - em seguida, dispara um webhook assinado pelo HMAC de volta ao seu endpoint. Cada salto é autenticado, idempotente e retried no fracasso.

HMAC-SHA256 - as cargas de carga do webhook são assinadas sobre o corpo bruto; API__ chama autenticar com uma chave de portadora.
Repetições automáticas - as entregas falharam e tenta novamente, com uma identificação de entrega que podes localizar.
Chaves de imunidade - Replay-seguro por design, para que uma entrega re-experimentada nunca faça duplos atos.
A sua aplicação POST /v1/actions/run X...OpsIQ-Assinatura X...OpsIQ- Timestamp VERIFICA – CORRER AUDITORIA O seu ponto final POST /webhooks verificar HMAC 200_ OK assinatura verificada âmbito + função verificada execução da ação contratada linha de auditoria escrita PAGAMENTO DE WEBHOOK SINAL { "Evento": "action. executed", "entrega_id": "dlv_8f2a9", "chave_idempotência": "idem_31c7", "Assinatura": "sha256=9c4e0a7b..." } entregue
01 pedido assinado 02 verificar HMAC 03 contrato de execução 04 escrever a linha de auditoria 05 Webhook assinado
Início rápido

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

Gerar uma chave, disparar o seu primeiro evento, subscrever um webhook, registar uma acção. Você pode executar todo o ciclo contra a sandbox antes de tocar nos dados da produção.

Consola de caixa de areiaLigado
CONSOLÉM DE DESENVOLVIMENTO · caixa de areia 1_ · Gerar a chave opq_live_xxx · uma chave de portadora com escopo 2 · Disparar um evento POST /v1/events/fire_ "ordem. shipped" 3 · Subscrever um webhook → https://api.you.com/webhooks 4_ · Registre uma ação Saas. refund_factura · auditada
PromoverSandbox → produção, mesmo código
01

Obter uma chave

Inscreva-se e gere uma chave API_ (opq_…) em configurações de desenvolvedor, e dar a cada integração apenas as superfícies que ele precisa.

02

& Subscrever o Fogo

POSTA um assinado events/fire (ou use um SDK), então aponte qualquer URL em qualquer evento, assinado, com uma identificação de entrega e retries back-off.

03

Registar uma acção

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

Como se encaixa

Um padrão de conector. Cinco primitivos limpos.

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

01
Gatilhos

Diga a OpsIQ o que aconteceu.

Dispare eventos universais da sua plataforma - ou seus próprios nomes de eventos personalizados. Cada assinante reage em tempo real, em ordem prioritária.

Referência do evento
invoice.paid events. fire () Cérebro de IAcontexto em tempo real regrasprioridade 20 espelhoescrever primeiro webhookassinado
Eventos Universal + personalizadosinvoice.paid, ticket.created, subscription.cancelled, customer.signed_up Ou a tua própria. Assinantes de fan-outO cérebro IA, as regras de automação, os conectores de espelho e os seus terminais webhook todos reagem. Ordem de prioridadeEnvio determinístico para que os espelhos escrevam antes de alertar o fogo.
02 / Contratos de acção

Diga OpsIQ_ o que a IA pode fazer.

Um contrato de ação é uma declaração assinada JSON_: 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 endpoint para chamar.

Esquema de ação
A IA não pode inventar acções.Só pode pedir para executar os que você registrou. Política de confirmaçãoAções arriscadas desencadeiam um cartão de pré-visualização antes de qualquer efeito colateral. Papel + revestimento de superfícieCada 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 / Webhooks assinados

Empurre os eventos para sua pilha - com prova criptográfica.

Subscreva qualquer URL_ para qualquer evento. OpsIQ POSTS a JSON__ carga de trabalho assinada com HMAC-SHA256 sobre o corpo bruto - verifique-o em algumas linhas.

Protecção de repetiçãoID de entrega rastreávelRetiradas
Referência do Webhook
verificar 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 em torno da mesma superfície 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 de conector

Conectar uma vez, ligar qualquer coisa.

Um conector é uma pasta com uma classe PHP. OpsIQ descobre-a, o registro liga os eventos, e seu código específico da plataforma permanece limpo separado do núcleo.

Guia do conector
Cinco ganchosidentityProviders(), contextProviders(), registerActions(), subscribers(), handleWebhook(). Manifestoactions.json e settings.json declarar contratos e config. Auto-descobertaLargue a pasta, assine-a, habilite-a no administrador.
Da intenção à ação segura

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

OpsIQ nunca inventa a chamada certa. Ele 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 ato Nunca se torna uma IA em que não se possa confiar.

Condicionamento de contrato. A IA só propõe acções que registaste.
Confirmar antes dos efeitos secundários. As ações arriscadas surgem primeiro uma placa de pré-visualização.
Retirada total. Cada resultado de resposta, ação e pronto capturado em AI History.
4 passosintention → auditoria
HMACassinado antes de executar
"Reembolso da última factura do Adam" Passo 1_ · resolução de intenção → correspondente: saas. refund_invoice superfície: admin · função: proprietário · Passo 2 validate Passo 3_ · Confirmar e assinar cartão de pré-visualização · fatura #8421 Confirmar Passo 4 · Linha de auditoria ator · prompt · resultado · 412ms Apenas para o proprietário · exportável como CSV
Nenhuma chamada inventadaApenas registo de contratos
Confirmar- expiradoantevisão antes dos efeitos secundários
100% auditadoprompt + resposta + resultado
Referência

API_ superfície de relance.

Cada endpoint de núcleo, sua autenticação, indempotência e limite de taxa por chave. O contrato completo legível por máquina vive na referência OpenAPI 3.0.3_.

Referência do OpenAPI 3.0.3
Ponto finalAuthIdempotenteLimite de taxa
EscreverSuperfícies de efeitos secundários assinadas
POST /v1/events/fireHMACSim.1000/min
POST /v1/actions/runHMACSim.200/min
POST /v1/webhooks/testHMACSim.60/min
LerContexto, tickets 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 retornados em cada resposta como X-OpsIQ-RateLimit-Remaining; superior a um limite retorna 429 com uma Retry-After cabeçalho. O contrato completo legível por máquina (cada endpoint, esquema e erro) vive na Referência do OpenAPI 3.0.3.

Construir um conector

Enviar um conector para dentro cinco passos.

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

1Andar uma pasta com connector.php extensão AbstractConnector.
2Declarar actions.json e settings.json Manifesta.
3Implementar provedores de identidade, contexto e webhook.
4Subscreva os eventos que você se importa.
5Assina, deixa-o entrar, ativa-o no administrador.
Teste antes de enviar

Uma chave de caixa de areia e um verificador webhook.

Cada espaço de trabalho expõe uma caixa de areia: uma chave separada com escopo que atinge a mesma superfície API sem tocar em dados de produção. POST /v1/webhooks/test para disparar uma entrega de amostra assinada no seu ponto final e confirmar a sua verificação da assinatura antes de entrar em directo. Instalações auto- hospedadas executam o caminho do código idêntico, sem deriva comportamental entre nuvem e on-prem.

Chaves de caixa de areia Teste Webhook Trabalhos orientados para o Cron Paridade de & auto- hospedada em nuvem
connector. php · php
classe AcmeConnector amplia AbstractConnector { função pública key (): string { retorno 'acme'; } // Resolver quem é o ator função pública identityProviders (): array { retorno [novo AcmeIdentityProvider()]; } // Insira dados ao vivo no prompt de IA função pública contextProviders (): array { retorno [novo AcmeContextProvider()]; } // Reagir para OpsIQ eventos função pública assinantes (): array { retorno ["Fatura. paga" => [novo BillingMirror()]]; } // Receba webhooks de entrada do Acme função pública manusearWebhook (array $body): vazio { /* … */ } }
. . . Como se compara

OpsIQ vs a Integração de DY.

Que uma plataforma de contrato, assinada e auditada, dá-lhe que rolar os seus próprios webhooks e canalização IA-ação nunca irá.

CapacidadeRola o teu 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) Variações
Connector pattern: platform code stays isolated
FAQ

Perguntas de desenvolvimento, - Não.

Auth, assinaturas, SDKs, sandboxing e o modelo de conector: tudo o que você vai pedir antes da primeira solicitação.

API_ chamadas autenticar com uma chave única de portador escopo: enviar Authorization: Bearer opq_…. OpsIQ_ verifica o escopo da chave e o papel do ator antes de qualquer coisa ser executada. Webhooks são separados: cada webhook OpsIQ envia X-OpsIQ-Signature (um hex HMAC-SHA256 da massa bruta) e uma X-OpsIQ-Timestamp para proteção replay, assim você pode verificar-nos em troca, e os webhooks inbound 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. Ela não pode inventar uma chamada. Cada contrato declara as superfícies, funções e parâmetros permitidos, e qualquer ação marcada requires_confirmation aparece um cartão de pré-visualização para um ser humano antes do efeito secundário correr.
Recomputar 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 de tempo constante (hash_equals). Cada entrega também carrega uma data-limite, uma chave de indempotência e um ID de entrega que você pode rastrear. O trecho PHP nesta página é a verificação completa.
Entregas que não retornam 200 são re-tentadas com back-off exponencial, cada uma carregando a mesma chave de indempotência para que uma entrega re-experimentada nunca faça duplos atos. Você pode rastrear cada tentativa por ID de entrega em administrador ou seus registros.
SDKs oficiais para PHP 8.4+, Node. js 18+ e Python 3.10+ assinatura do manuseio, retries, chaves de indempotência e respostas digitadas. São invólucros finos em torno da superfície REST, assim você também pode gerar seu próprio cliente a partir do contrato publicado OpenAPI 3.0.3_ ou chamar o API_________.
Sim. Cada espaço de trabalho expõe uma caixa de areia com sua própria chave que atinge a mesma superfície API sem tocar em dados de produção, mais POST /v1/webhooks/test para disparar uma entrega de amostra assinada no seu ponto final e confirmar a sua verificação antes de entrar em directo.
Sim. As instalações auto-hospedadas executam o caminho idêntico do código (a mesma assinatura, o mesmo registro do conector, 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 extending AbstractConnector, mais actions.json e settings.json manifesta. Você implementa identityProviders(), contextProviders(), registerActions(), subscribers() e handleWebhook(). OpsIQ_ auto-descobre-o, fios os eventos e mantém o seu código específico plataforma limpo separado do núcleo.