Platforma dezvoltatorului · REST · webhooks · SDKs

Asiguraţi-vă platforma Al-operabil.

OpsIQ_ expune un REEST curat API, HMAC-semnate webhooks, un registru de acțiune-contract și gata-la-navă SDKs. Definește ce evenimente foc din sistemul tău, ce acțiuni AI este permis să ruleze, și ce date este sigur de citit. OpsIQ_ se ocupă de semnături, retries, jurnale de audit și fluxuri de confirmare pentru tine.

HMAC-SHA256 ambele sensuriPHP · Nod · Python SDKsContractul OpenAPI 3.0.3100% acoperire audit
Cerere semnată în
Semnat webhook out →200Bine.
Trăieşte curl →OpsIQ→ webhook semnat POST /v1/actions/run X-OpsIQ-Semnătura { "action": "refund_invoice," "confirmat": adevărat } Verificarea · Executarea · Auditul Semnătura rol + domeniu de aplicare randul de audit scris @opsiq/sdkwidget la ["acţiune. executată") ] verifică mânerul HMAC → 200 OK
3oficial SDK: PHP, Node, Python
HMACSHA-256semnat la fiecare cerere
40+evenimente universale de subscriere
100%acoperire de audit-log privind acțiunile
Cererea de ciclu de viață

Solicităm intrarea. Semnat webhook afară.

POST la OpsIQ API cu tasta ta de suport. OpsIQ verifică domeniul și rolul, execută acțiunea contractată, scrie un rând de audit - apoi trage un webhook semnat HMAC înapoi la obiectivul dumneavoastră. Fiecare salt este autentificat, idepotent și retried pe eșec.

HMAC-SHA256 de site-uri web - se semnează încărcăturile utile de pe webhook cu intrare şi ieşire peste corpul brut; API apelurile autentifică cu o cheie de la purtător.
Retușări automate - Livrările eşuate înapoi şi rejudecarea, cu un act de livrare pe care îl poţi urmări.
Cheile de rezervă - reluarea-siguranță prin design, astfel încât o livrare retried nu dublează.
Aplicația dumneavoastră POST /v1/actions/run X-OpsIQ-Semnătura X-OpsIQ_- Timemark Verificarea - Rularea - Auditul Obiectivul final POST /webhooks verifică HMAC 200 OK semnătură verificată Domeniul de aplicare + rolul verificat Rularea acțiunii contractate randul de audit scris SEMNAT PAYLOAD DE WEBHOOK { "eveniment": "acţiune. executată," "livrare_id": "dlv_8f2a9," "Idempotenţă_cheie": "idem_31c7," "semnătură": "sha256=9c4e0a7b..." } livrat
01 cerere semnată 02 verifică HMAC 03 contract de executare 04 scrieți rândul de audit 05 webhook semnat
Start rapid

De la zero la o integrare live în patru paşi.

Generați o cheie, concediați primul eveniment, abonați-vă la un webhook, înregistrați o acțiune. Puteți rula întreaga buclă împotriva sandbox înainte de a atinge datele de producție.

Consolă SandboxConectat
CONSOLE DEVELOPER · Sandbox 1 · Generează cheia opq_live_xx · o singură cheie de poartă 2 · Trage un eveniment POST /v1/events/fire "Order. shipped" 3 · Abonare un webhook → https://api.you.com/webhooks 4 · Înregistrează o acțiune saas. refund_invoice · auditat
PromoveazăSandbox → producţie, acelaşi cod
01

Ia o cheie.

Înregistrează-te și generează o cheie de intrare API (opq_…) în setări dezvoltator, și de a da fiecare integrare numai suprafețele de care are nevoie.

02

Abonează focul

Postează un semn events/fire (sau să utilizeze un SDK), apoi să indice orice URL la orice eveniment, semnat, cu un ID de livrare și retururi de rezervă.

03

Înregistrează o acțiune

Declara un contract de acţiune semnat astfel încât AI să poată efectua operaţiuni în siguranţă, cu controale ale rolurilor, politica de confirmare şi o pistă de audit completă.

Cum se potriveşte împreună

Un model de conector. Cinci primitivi curaţi.

Orice traieste intr-o platforma specifica intr-un conector. Nucleul OpsIQ ramane generic, AI ramane previzibil, iar integrarea ta ramane auditabila.

01
Declanșatoare

Spune.OpsIQce s-a întâmplat.

Trage evenimente universale de pe platforma ta - sau nume de evenimente personalizate. Fiecare abonat reacţionează în timp real, în ordine prioritară.

Referință la eveniment
invoice.paid evenimente. fire() Al creiercontext live reguliprioritate 20 oglindăScrie mai întâi webhookCommentsemnat
Evenimente universale + personalizateinvoice.paid, ticket.created, subscription.cancelled, customer.signed_up sau a ta. Abonați la Fan-outCreierul AI, regulile de automatizare, conectorii oglinda si obiectivele dvs. webhook toate reactioneaza. Ordinea prioritarăDispecerat determinant, astfel încât oglinzile să scrie înainte de foc alerte.
02_ Contracte de acţiune

Spune.OpsIQce AI are voie să facă.

Un contract de actiune este o declaratie semnata JSON_: ce actionare face, ce roluri il pot rula, ce parametri accepta, daca este necesara confirmarea si ce obiectiv trebuie sa apeleze.

Schema de acțiune
AI nu poate inventa acţiuniNu poate cere decât să-i verifice pe cei pe care i-ai înregistrat. Politica de confirmareAcţiunile riscante declanşează un card de previzualizare înaintea oricărui efect secundar. Rol + Garaj de suprafațăFiecare acțiune declară rolurile și suprafețele care le permit să-l ruleze.
contract de acțiune - 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 / Cârlige web semnate

Împinge evenimente la stiva ta - cu dovezi reproductibile.

Aboneaza orice URL la orice eveniment. OpsIQ Postează sarcina utilă JSON semnată cu HMAC-SHA256 peste corpul brut - verifică-l în câteva rânduri.

Protecţia din nouID-ul de livrare trasabilRetușări de rezervă
Referinţă webhook
verifică 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 / SDK-uri

Clienţi cu cartelă pentru limba pe care o folosiţi deja.

Trei SDK-uri oficiale manipulează autentificarea, semnarea, retierele, cheile de idempotenţă şi răspunsurile tastate. Sau rămân fără cadru - fiecare SDK este un ambalaj subţire în jurul aceleiaşi suprafeţe REST.

exemple de client
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",
})
PHP8.4+Node. js 18+Python3.10+REST · OpenAPI3.0.3
05_ Modelul conectorului

Construieşte o dată şi conectează-te la orice.

Un conector este un dosar cu o singură clasă PHP. OpsIQ descoperă, registrul fire evenimente, și codul dvs. de platformă-specifică rămâne curat separate de miez.

Ghid conector
Cinci cârligeidentityProviders(), contextProviders(), registerActions(), subscribers(), handleWebhook(). Cu motor cu piston alternativ cu aprindere prin scânteieactions.json şi settings.json să declare contracte și configurări. AutodescoperitAruncă dosarul, semnează-l, dă-i drumul la admin.
De la intenţie la acţiune sigură

Engleză simplă. Operaţiunea auditată terminată.

OpsIQ_ nu inventează niciodată apelul corect. Trece prin contractele înregistrate, pregătește sarcina utilă, cere confirmarea atunci când acțiunea o cere și produce un rând complet de audit atunci când execută, astfel încât un AI care poate Act Niciodată nu devine un AI nu poți avea încredere.

Legat de contract. AI propune doar acţiuni pe care le-ai înregistrat.
Confirmaţi înainte de efecte secundare. Acţiunile riscante ies la suprafaţă mai întâi o carte de previzualizare.
Rechemare totală. Fiecare rezultat prompt, răspuns şi acţiune capturat în istoria AI.
4trepteintenţie → audit
HMACsemnat înainte de executare
"restitui ultima factură a lui Adam" Pas1· Rezoluţia intenţiei → potrivit: saas. refund_facke suprafata: admin · rol: proprietar · Pas 2 valideaza Pasul 3 · Confirmă & semn carte de previzualizare · factură #8421 Confirmă Pas4· Rândul auditului actor · prompt · rezultat ·412ms Proprietar numai · exportabil ca CSV
Nu există apeluri inventateNumai registrul contractelor
Confirmatprevizualizare înainte de efecte secundare
100%auditatprompt + răspuns + rezultat
Referință

APIsuprafață dintr-o privire.

Fiecare obiectiv principal, autch-ul, idempotenţa şi rata de pe chei. Contractul complet care poate fi citit automat trăieşte în OpenAPI 3.0.3 referinţă.

OpenAPI 3.0.3 referință
Punct finalAuthIpotentLimita ratei
ScrieSuprafețe cu efecte secundare semnate
POST /v1/events/fireHMACDa.1000/min
POST /v1/actions/runHMACDa.200/min
POST /v1/webhooks/testHMACDa.60/min
CititContext, tichete și inventarul conectorilor
GET /v1/customers/{id}HMACDa.2000/min
GET /v1/ticketsHMACDa.2000/min
GET /v1/connectorsHMACDa.2000/min

Limitele ratei sunt per cheie și returnate la fiecare răspuns ca X-OpsIQ-RateLimit-Remaining; peste o limită de returnare 429 cu Retry-After antetul. Contractul complet de citire a maşinilor (fiecare criteriu final, schema şi eroarea) trăieşte în OpenAPI 3.0.3 referință.

Construiește un conector

Ambarcaţiunea conectorului cinci paşi.

Un conector este un dosar autonom. OpsIQ_ descoperă, registrul fire evenimente, și codul dvs. specific platformei nu se scurge în miez.

1Scaffold un dosar cu connector.php extinderea AbstractConnector.
2Declarare actions.json şi settings.json Manifeste.
3Implementează identitatea, contextul și furnizorii de webhook.
4Aboneaza-te la evenimentele la care tii.
5Semnează, lasă-l înăuntru, fă-l să intre în admin.
Testaţi înainte de a vă deplasa

O cheie de nisip şi un tester de webhook.

Fiecare spațiu de lucru expune o cutie de nisip: o cheie separată cu acoperire care atinge aceeași suprafață API fără a atinge datele de producție. POST /v1/webhooks/test pentru a trage o livrare de probe semnat la obiectivul dvs. și confirma verificarea semnăturii înainte de a merge în direct. Auto-hosted instalaţii rula calea de cod identice, fără nici o abatere comportamentală între nor și on-prem.

Cheile cutiei de nisip Testator de webhook Locuri de muncă bazate pe cron Paritate de cloud și gazdă proprie
conector. php · php
clasă AcmeConnector se extinde AbstractConnector { funcția publică Cheie (): șir { Înapoi "Acme"; } // Rezolva cine este actorul funcția publică IdentityProviders () (): matrice { Înapoi [nou AcmeIdentityProvider()]; } // Fluxul de date live în prompt AI funcția publică ContextProviders (): matrice { Înapoi [nou AcmeContextProvider()]; } / / Reacționează la OpsIQ evenimente funcția publică abonați (cu excepția: matrice { Înapoi ["Voce. Payed" => [nou BillingMirror()]]; } // Primiți prosoape web de la Acme funcția publică manerWebhook(matrice $body): gol { /* … */ } }
Cum se compară

OpsIQ vs a Integrare DIY.

Ce platformă de contractare, semnată şi auditată îţi oferă faptul că rularea propriilor tale site-uri web şi instalaţii de acţiune AI nu vor face niciodată.

CapacitateaRostogoleşte-te singur.OpsIQ
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) Variază
Connector pattern: platform code stays isolated
Întrebări frecvente

Întrebări de dezvoltator, Răspuns.

Auth, semnături, SDK-uri, sandboxing şi modelul conectorului: tot ce veţi cere înainte de prima cerere.

API apeluri autentifice cu o singură cheie de suport: trimite Authorization: Bearer opq_…. OpsIQ verifică domeniul de aplicare al cheii și rolul actorului înainte de orice rulează. Webhook-urile sunt separate: fiecare webhook OpsIQ trimite poartă un X-OpsIQ-Signature (un hex HMAC-SHA256 al corpului brut) și un X-OpsIQ-Timestamp pentru a replay protection, astfel încât să puteți verifica ne în schimb, și inbound webhooks pe care le trimiteți sunt verificate în același mod.
Nu. AI poate propune doar acţiuni care există în registrul dumneavoastră de acţiune-contract. Ea nu poate inventa un apel. Fiecare contract declară suprafeţele, rolurile şi parametrii permise, precum şi orice acţiune marcată requires_confirmation suprafeţele o carte de previzualizare pentru un om înainte de a se rula efectul secundar.
Recalculează hash_hmac('sha256', $rawBody, $secret) (un hex digera cu nici un prefix) și comparați-l cu X-OpsIQ-Signature antet cu o verificare constantă a timpului (hash_equals) Fiecare livrare are, de asemenea, o marca de timp, o cheie idempotenta si un ID de livrare puteti urmari. Fragmentul PHP de pe aceasta pagina este intreaga verificare.
Livrările care nu returnează un 200 sunt rejudecate cu o rezervă exponențială, fiecare purtând aceeași cheie idepotență astfel încât o livrare retried nu dublu-acts. Puteți urmări fiecare încercare prin ID-ul de livrare în admin sau jurnalele.
SDK-uri oficiale pentru PHP8.4+, Node.js18+ și Python3.10+ semnarii mânerului, retiere, taste de idempotenta si raspunsuri tastate. Sunt ambalaje subtiri in jurul suprafetei REST, astfel incat sa puteti genera propriul client din OpenAPI publicat3.0.3contract sau apelațiAPIdirect.
Fiecare spaţiu de lucru expune o cutie de nisip cu propria cheie care loveşte acelaşiAPIsuprafața fără a atinge datele de producție, plus POST /v1/webhooks/test pentru a trage o livrare de probe semnat la obiectivul final și confirma verificarea înainte de a merge în direct.
Da. Instalaţiile auto-hostate rulează calea de cod identică (aceeași semnătură, același registru conector, același contract OpenAPI) astfel încât nu există nici o abatere comportamentală între nor și pe-prem.
Un conector este un dosar autonom cu o singură clasă PHP care se extinde AbstractConnector, plus actions.json şi settings.json Exemplare. identityProviders(), contextProviders(), registerActions(), subscribers() şi handleWebhook(). OpsIQ îl descoperă automat, firează evenimentele și păstrează codul specific platformei separat curat de nucleu.