Gjør plattformen din AI-operativt.
OpsIQEksponerer en ren RESTAPI, HMAC-signert webhooks, et action-kontrakt register og klar til å sende SDK. Definere hvilke hendelser brann fra systemet ditt, hva handlinger AI er tillatt å kjøre, og hvilke data som er trygge å lese.OpsIQhåndtere signaturer, retries, revisjonslogger og bekreftelsesstrømmer for deg.
Forespørsel i. Signert webhook ut.
Du POST til OpsIQ_ API med din omfangsrike Bearer-nøkkel. OpsIQ sjekker omfang og rolle, kjører den kontraktete handlingen, skriver en revisjonsrad - så brenner en HMAC-signert webhook tilbake til endepunktet ditt. Hvert humle er autentisert, idempotensielt og retried på feil.
Fra null til live integrasjon i Fire skritt.
Opprett en nøkkel, avfyr din første hendelse, abonner en webhook, registrere en handling. Du kan kjøre hele sløyfen mot sandboksen før du rører ved produksjonsdata.
Få en nøkkel
Registrer deg og generer en omdøpt Bearer API_ nøkkel (opq_…) i utviklerinnstillinger, og gi hver integrasjon bare de overflatene det trenger.
Brann & abonner
POST et signert events/fire (eller bruk en SDK), deretter peke noen URL under alle omstendigheter, signert, med leverings-ID og back-off retries.
Registrer en handling
Deklarere en signert handlingskontrakt slik at AI trygt kan drive operasjoner, med rollekontroll, bekreftelsespolitikk og et fullstendig revisjonsspor.
Ett kontaktmønster. Fem rene primitive.
Alt plattformspesifikk bor i en kontakt. OpsIQ-kjernen forblir generisk, AI forblir forutsigbar og din integrasjon forblir revisjonsbar.
Fortell OpsIQ hva som bare skjedde.
Skyt universelle hendelser fra plattformen din - eller dine egne tilpassede hendelsesnavn. Hver abonnent reagerer i sanntid, i prioritets rekkefølge.
Hendelsesreferanseinvoice.paid, ticket.created, subscription.cancelled, customer.signed_up eller din egen.
Fan-out abonnenterAI-hjernen, automatiseringsreglene, speilkontaktene og dine webhook-endepunkter alle reagerer.
PrioritetsordenDeterministisk forsendelse så speil skrive før varsler brann.
Fortell OpsIQ hva AI har lov til å gjøre.
En handlingskontrakt er en signert JSON-erklæring: hva handlingen gjør, hvilke roller kan kjøre den, hvilke parametre den aksepterer, om bekreftelse er nødvendig og endepunktet å ringe.
Handlingsskjema{
"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
}
Push hendelser til stabelen din - med kryptografisk bevis.
Abonner alleURLtil alle hendelser.OpsIQPOSTERJSONnyttelast signert med HMAC-SHA256 over den rå kroppen - verifisere det i noen linjer.
$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);
Drop-in klienter for språket du allerede bruker.
Tre offisielle SDKs håndterer autentisering, signering, retries, idemppotenstaster og skrivne svar. Eller holde rammefri - hver SDK_ er en tynn pakke rundt den samme REST-overflaten.
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",
})
Bygg en gang.
En kontakt er en mappe med én PHP-klasse. OpsIQ oppdager det, registertrådene hendelsene og plattformens bestemte kode forblir rensalig adskilt fra kjernen.
KontaktguideidentityProviders(), contextProviders(), registerActions(), subscribers(), handleWebhook().
Manifest-drevetactions.json og settings.json erklære kontrakt og konfigurasjon.
Auto-oppdagetLegg mappen inn, logg den på, slå den i administrator.
Vanlig engelsk i. -Revidert operasjon ute.
OpsIQ_ oppfinner aldri riktig samtale. Den går gjennom registrerte kontrakter, forbereder nyttelasten, ber om bekreftelse når handlingen krever det og produserer en komplett revisjonsrad når den utfører, så en AI som kan handling Aldri bli en AI du ikke kan stole på.
API-overflate - Et blikk.
Hvert kjerne endepunkt, aut, idempaens og per nøkkel rentegrense. Den fulle maskinlesbare kontrakten lever i OpenAPI 3.0.3-referansen.
POST /v1/events/fireHMACJa1000/minPOST /v1/actions/runHMACJa200/minPOST /v1/webhooks/testHMACJa60/minGET /v1/customers/{id}HMACJa2000/minGET /v1/ticketsHMACJa2000/minGET /v1/connectorsHMACJa2000/minPrisgrensene er per nøkkel og returneres på alle svar som X-OpsIQ-RateLimit-RemainingOverskrid en grense avkastning 429 med en Retry-After overskrift. Den fulle maskinlesbare kontrakten (alle endepunkter, skjema og feil) bor i OpenAPI 3.0.3 referanse.
Send en kobling inn Fem trinn.
En kontakt er en selvstendig mappe. OpsIQ oppdager det, registertrådene hendelsene og din plattformspesifikke kode aldri lekker inn i kjernen.
connector.php forlengelse AbstractConnector.actions.json og settings.json manifest.En sandkasse-nøkkel og en webhook tester.
Hvert arbeidsområde avslører en sandkasse: en separat omfangsfull nøkkel som treffer samme API-overflate uten å røre ved produksjonsdata. POST /v1/webhooks/test å skyte en signert prøvelevering ved endepunktet og bekrefte signaturverifisering før du går live. Selv-verterte installasjoner kjører den samme kodestien, uten atferdsdrift mellom sky og på prem.
OpsIQvs a DIY-integrasjon.
For en kontraktsbunden, signert og revidert plattform gir deg at rulle dine egne webhooks og AI-action VVS aldri vil.
| Kapabilitet | Rull din egen | 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) | Varierer | ✓ |
| Connector pattern: platform code stays isolated | — | ✓ |
Utviklerspørsmål, Svaret.
Author, signaturer, SDKs, sandboksing og kontaktmodellen: alt du vil be om før første forespørsel.
Authorization: Bearer opq_…. OpsIQ_ kontrollerer nøkkelens omfang og skuespillerens rolle før noe kjører. Webhooks er separat: hver webhook OpsIQ sender bærer en X-OpsIQ-Signature (en HEXT HMAC-SHA256 av råkroppen) og en X-OpsIQ-Timestamp for gjenspill beskyttelse, slik at du kan bekrefte oss i retur, og inbound webhooks du sender er verifisert på samme måte.requires_confirmation overflater et forhåndsvisningskort til et menneske før bivirkningen kjører.hash_hmac('sha256', $rawBody, $secret) (en heksefordøye uten prefiks) og sammenligne det med X-OpsIQ-Signature overskrift med konstant tidskontroll (hash_equals). Hver levering har også en tidsstempel, en idempats-nøkkel og en leverings-ID du kan spore. PHP snuten på denne siden er hele verifiseringen.POST /v1/webhooks/test å skyte en signert prøvelevering på endepunktet og bekrefte verifisering før du går live.AbstractConnector, pluss actions.json og settings.json Du implementerer identityProviders(), contextProviders(), registerActions(), subscribers() og handleWebhook(). OpsIQ automatisk oppdager det, ledninger hendelsene og holder din plattformspesifikke kode rengjort fra kjernen.