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.
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.
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.
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.
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.
Indgive en klage
Declare en underskrevet actionkontrakt, så AI kan sikkert køre operationer, med rollecheck, bekræftelsespolitik og en fuld revision spor.
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.
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.
Begivenhedsreferenceinvoice.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.
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{
"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
}
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.
$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-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.
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",
})
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.
ForbindelsesguideidentityProviders(), 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.
- 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å.
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.
POST /v1/events/fireHMACJa1000 / minPOST /v1/actions/runHMACJa200 / minPOST /v1/webhooks/testHMACJa60 / minGET /v1/customers/{id}HMACJa2000 / minGET /v1/ticketsHMACJa2000 / minGET /v1/connectorsHMACJa2000 / minRate 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.
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.
connector.php om forlængelse AbstractConnector.actions.json og settings.json manifester.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.
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.
| Kapacitet | Rul 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) | Varers | ✓ |
| Connector pattern: platform code stays isolated | — | ✓ |
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.
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.requires_confirmation overflader en preview kort til et menneske, før sideeffekt kører.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.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.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.