Udvikler platform · REST · webkroge · SDK 'er

Lav din platform - Kan betjenes.

OpsIQ udsætter en ren REST API, HMAC-signerede webkroge, en action- contract registreringsdatabasen og ready- to- ship SDK. Definer hvilke begivenheder brand fra dit system, hvilke handlinger AI er tilladt at køre, og hvilke data er sikkert at læse. OpsIQ håndterer signaturer, forsøg, revision logs og bekræftelse strømme for dig.

HMAC-SHA256 begge vejePHP · Node · Python SDK'erOpenAPI 3.0.3 kontrakt100% revisionsdækning
Underskrevet anmodning i
Underskrevet webhook ud → 200 OK
Levende curl → OpsIQ → signeret webhook POST /v1/actions/run X- OpsIQ- Signature { "action": "refundering _ fakturae" "bekræftet": true} VERIFIK RUND REVISION signaturer rolle + anvendelsesområde Revisionsserie skrevet @ opsiq / sdk widget om ("action. executed") verificere HMAC → -håndtaget 200 OK
3officielle SDK: PHP, Node, Python
HMACSHA- 256 underskrevet på hver anmodning
40+universelle begivenheder at tegne
100%audit- log dækning af handlinger
Anmodningen livscyklus

Anmoder om tilladelse. Underskrevet webhook ud.

Du POST til OpsIQ API med din scoped Bearer nøgle. OpsIQ kontrollerer omfang og rolle, kører den aftalte handling, skriver en revision række - derefter brande en HMAC-signeret webhook tilbage til dit endpoint. Hver hop er godkendt, idempotent og forsøgte igen på fiasko.

HMAC- SHA256-webkroge - Indgående og udgående webhook nyttelaster er signeret over den rå krop; API opkald autentificere med en scoped Bearer nøgle.
Automatisk relæer - Fejlede leverancer tilbage off og prøve igen, med en levering ID du kan spore.
Idempotenstikktaster - replay- sikker af design, så en genprøvet levering aldrig fordoble-handlinger.
Din app POST /v1/actions/run X- OpsIQ- Signature X- OpsIQ- Timestamp VERIFIK - RUN - REVISION Dit endpoint POST /webhooks kontrollere HMAC 200 OK Underskrift verificeret omfang + rolle kontrolleret kontraheret aktionskørsel Revisionsserie skrevet LIGNENDE WEBHOOK PAYLOAD { "begivenhed": "action. executed" "delivery _ id": "dlv _ 8f2a9" "idempotency _ key": "idem _ 31c7" "underskrift": "sha256 =9c4e0a7b..." } leveret
01 Underskrevet anmodning 02 kontrollere HMAC 03 kørselskontrakt 04 write audit række 05 signeret webhook
Hurtig start

Fra nul til en levende integration i Fire skridt.

Generér en nøgle, affyr din første begivenhed, tilmeld dig en webhook, registrer en handling. Du kan køre hele løkken mod sandkassen, før du rører produktionsdata.

Sandkasse- konsolForbundet
HÅNDHÆVELSE AF KORTEDE 1 · Generér nøgle opq _ live _ xxx · one scoped Bearer key 2 · Brand en begivenhed POST /v1/events/fire "order. depested" 3 · Abonner på en webhook → https://api.you.com/webhooks 4 · Registrer en handling Saas. refund _ faktura. reviewed
FremmeSandbox → produktion, samme kode
01

Få en nøgle

Tilmeld og generér en opfanget Beater API nøgle (opq_…) i udviklerindstillinger, og give hver integration kun de overflader, det har brug for.

02

Brænd & tilmeld

PORT a signeret events/fire (eller bruge en SDK), derefter pege på enhver URL ved enhver begivenhed, underskrevet, med et leveringsid og back- off reles.

03

Indgive en klage

Declare en underskrevet actionkontrakt, så AI kan sikkert køre operationer, med rollecheck, bekræftelsespolitik og en fuld revision spor.

Hvordan det passer sammen

Et stik mønster. Fem rene primitive.

Alt platform- specifikke lever i en konnektor. OpsIQ kerne forbliver generiske, AI forbliver forudsigelig, og din integration forbliver audible.

01
Triggere

Fortæl OpsIQ, hvad der lige skete.

Brand universelle begivenheder fra din platform - eller dine egne brugerdefinerede begivenhedsnavne. Hver abonnent reagerer i realtid, i prioriteret rækkefølge.

Begivenhedsreference
invoice.paid hændelser. AI-hjernelive-kontekst reglerPrioriteret 20 spejlskriv først webhookunderskrevet
Universal + brugerdefinerede begivenhederinvoice.paid, ticket.created, subscription.cancelled, customer.signed_up eller din egen. Fanoout abonnenterAI-hjernen, automatiseringsregler, spejlkonnektorer og dine webhook endepunkter reagerer alle. Prioriteret rækkefølgeAfsendelsessystemet er deterministisk, så spejle skriver før ild.
02 / Action kontrakter

Fortælle OpsIQ hvad AI 'en har lov til at gøre.

En aktionskontrakt er en underskrevet JSON erklæring: hvad handlingen gør, hvilke roller kan køre det, hvilke parametre den accepterer, om bekræftelse er påkrævet, og endepunktet at ringe.

Handlingsplan
AI 'en kan ikke opfinde handlingerDet kan kun bede om at køre dem, du har registreret. BekræftelsespolitikRisikaske handlinger udløser et preview-kort før nogen sideeffekt. Rolle + overfladebehandlingHver handling erklærer de roller og overflader, der tillades at køre den.
handlingskontrakt -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 / Signerede webkroge

Skub begivenheder til din stak - med kryptografisk bevis.

Abonner alle URL til enhver begivenhed. OpsIQ POSTs JSON nyttelast underskrevet med HMAC- SHA256 over rå krop - verificer det i et par linjer.

GenafspilningsbeskyttelseSporbar leverings- IDTilbageførselsforsøg
Webhook- reference
verificer 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

Drop-i klienter for det sprog, du allerede bruger.

Tre officielle SDK 'er håndterer autentificering, signering, forsøg på at gengive, idempotency taster og indtastede svar. Eller ophold frameworks- free - hver SDK er en tynd ompakning omkring den samme REST overflade.

klienteksempler
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 / Forbindelsesmønsteret

Byg engang, sæt dig ind i alt.

En konnektor er en mappe med en PHP klasse. OpsIQ opdager det, registreringsdatabasen ledninger begivenhederne, og din platform- specifikke kode forbliver rent adskilt fra kernen.

Forbindelsesguide
Fem krogeidentityProviders(), contextProviders(), registerActions(), subscribers(), handleWebhook(). Manifestdrevneactions.json og settings.json erklære kontrakter og config. Auto- opdagetSmid mappen i, sign den, aktivér den i admin.
Fra hensigt til sikker handling

- Enkelt engelsk. - Den er færdig.

OpsIQ opfinder aldrig det rigtige opkald. Det går gennem de registrerede kontrakter, forbereder nyttelasten, beder om bekræftelse, når handlingen kræver det, og producerer en komplet revision række, når det udfører, så en AI, der kan handling bliver aldrig en AI, man ikke kan stole på.

- Kontrakt. AI 'en foreslår kun handlinger, du har registreret.
Bekræft før bivirkninger. Risikaske handlinger overflade et preview kort først.
Fuldstændig tilbagekaldelse. Hver prompt, svar og handling resultat fanget i AI Historie.
4 trinintent→ revision
HMACsigneret før udførelse
"refunderer Adams sidste faktura" Trin 1 · intentative opløsning → matchede: saas. refund _ faktura Overflade: admin · rolle: ejer · Trin 2 validity Trin 3 · Bekræft & tegn forhåndsvisning kort · faktura # 8421 Bekræft Trin 4 · Audit række skuespiller · prompt · resultat · 412ms Ejer-kun kan eksporteres som CSV
Ingen opfandt opkaldKun kontraktregister
Konfirmationer- gatedforhåndsvisning før sideeffekter
100% revideretprompt + response + resultat
Henvisning

API overflade på et blik.

Hvert centralt endepunkt, dets auth, idempotens og per- key rate grænse. Den fulde maskinlæsbare kontrakt bor i OpenAPI 3.0.3 reference.

OpenAPI 3.0.3 reference
SlutpunktAutorisationIdempotentSats
SkrivUnderskrevet sideeffektoverflader
POST /v1/events/fireHMACJa1000 / min
POST /v1/actions/runHMACJa200 / min
POST /v1/webhooks/testHMACJa60 / min
LæsKontekst, billetter og forbindelsesliste
GET /v1/customers/{id}HMACJa2000 / min
GET /v1/ticketsHMACJa2000 / min
GET /v1/connectorsHMACJa2000 / min

Rate grænser er per nøgle og returneres på hver reaktion som X-OpsIQ-RateLimit-Remaining; overskridelse af en grænse afkast 429 med Retry-After header. Den fulde maskinlæsbare kontrakt (hvert endepunkt, skema og fejl) bor i OpenAPI 3.0.3 reference.

Byg en konnektor

Skib en konnektor ind fem skridt.

En konnektor er en selvbehersket mappe. OpsIQ opdager det, registreringsdatabasen ledninger begivenhederne, og din platformspecifikke kode aldrig lækkes ind i kernen.

1Slagtning af en mappe med connector.php om forlængelse AbstractConnector.
2Erklæring actions.json og settings.json manifester.
3Implementere identitet, kontekst og webhook-udbydere.
4Abonner på de begivenheder, du holder af.
5Skriv under, smid det ind, og aktivér det i admin.
Test før du sender

En sandkasse nøgle og en webhook tester.

Hvert arbejdsområde udsætter en sandkasse: en separat indfanget nøgle, der rammer den samme API overflade uden at røre produktionsdata. POST /v1/webhooks/test til at affyre en underskrevet prøve levering på dit endepunkt og bekræfte din underskrift verifikation, før de går live. Self-hostede installationer køre den identiske kode sti, uden adfærdsmæssig drift mellem cloud og on- prem.

Sandkassenøgler Webhook- tester Cron- drevne job Cloud & selvhostede paritet
connector. php · php
klasse AcmeConnector extensions AbstractConnector { offentlig funktion nøgle (): streng { Returnering "acme"; } / / Genoplys hvem skuespilleren er offentlig funktion identityProviders (): array { Returnering [ny AcmeIdentityProvider()]; } / / Feed live data ind i AI prompt offentlig funktion contextProviders (): array { Returnering [ny AcmeContextProvider()]; } / / Reagerer på OpsIQ begivenheder offentlig funktion abonnenter (): array { Returnering ["invoice. paid" => [ny BillingMirror()]]; } / / Modtag indadgående netkroge fra Acme offentlig funktion håndled Webhook (array $body): tomat { /* … */ } }
Hvordan det sammenligner

OpsIQ vs en Det er en integration.

Hvilket kontraktbundet, underskrevet, revideret platform giver dig, at rullende dine egne webkroge og AI- action VVS aldrig vil.

KapacitetRul din egenOpsIQ
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) Varers
Connector pattern: platform code stays isolated
Ofte stillede spørgsmål

Udvikler spørgsmål, Det er ikke det, jeg vil sige.

Aut, underskrifter, SDK 'er, sandboksning og konnektor model: alt hvad du vil bede om før den første anmodning.

API opkald autentificere med en enkelt scoped Bearer nøgle: send Authorization: Bearer opq_…. OpsIQ kontrollerer nøgleens omfang og skuespillerens rolle før noget kører. Webkroge er separate: hver webhook OpsIQ sender bærer en X-OpsIQ-Signature (en hex HMAC-SHA256 af rå krop) og en X-OpsIQ-Timestamp for replay beskyttelse, så du kan kontrollere os til gengæld, og indgående webkroge, du sender, er verificeret på samme måde.
Nej. AI kan kun foreslå handlinger, der findes i din action- kontrakt register. Det kan ikke opfinde et opkald. Hver kontrakt erklærer overflader, roller og parametre tilladt, og enhver handling markeret requires_confirmation overflader en preview kort til et menneske, før sideeffekt kører.
Genopput hash_hmac('sha256', $rawBody, $secret) (en hex digest uden præfiks) og sammenligne det med X-OpsIQ-Signature header med en kontrol af konstanttiden (hash_equals). Hver levering også bærer en tidsstempel, en idempotency nøgle og en levering ID, du kan spore. PHP snuppet på denne side er hele verifikationen.
Leverancer, der ikke returnerer en 200 er prøvet igen med eksponentiel back- off, hver bærer den samme idempotency nøgle, så en genprøvet levering aldrig fordoble-handlinger. Du kan spore hvert forsøg ved levering ID i admin eller dine logfiler.
Officielle SDK 'er til PHP 8.4 +, Node. js 18 + og Python 3.10 + håndtags signering, forsøg, idempotency taster og indtastede svar. De er tynde indpakning omkring REST-overfladen, så du kan også generere din egen klient fra den offentliggjorte OpenAPI 3.0.3 kontrakt eller kalde API direkte.
Ja. Hvert arbejdsområde udsætter en sandkasse med sin egen scoped nøgle, der rammer den samme API overflade uden at røre produktionsdata, plus POST /v1/webhooks/test til affyring af en underskrevet prøve levering på dit endepunkt og bekræfte din bekræftelse, før de går live.
Ja. Self-hosted installeringer køre den identiske kode sti (den samme signering, den samme stik registreringsdatabasen, den samme OpenAPI kontrakt), så der er ingen adfærdsmæssig drift mellem cloud og on- prem.
Et stik er en selvbehersket mappe med en PHP klasse udvidelse AbstractConnector, plus actions.json og settings.json manifester. Du gennemfører identityProviders(), contextProviders(), registerActions(), subscribers() og handleWebhook(). OpsIQ automatisk opdager det, ledninger begivenhederne og holder din platform- specifikke kode rent adskilt fra kernen.