Ontwikkelaarplatform · REST · webhooks · SDK's

Maak uw platform Al-operable.

OpsIQ stelt een schoon REST API, HMAC-gesigneerde webhooks, een actie-contract register en kant-en-klare SDK's bloot. Bepaal welke gebeurtenissen uit uw systeem schieten, welke acties de AI mag uitvoeren en welke gegevens veilig zijn om te lezen. OpsIQ behandelt handtekeningen, herhalingen, audit logs en bevestigingsstromen voor u.

HMAC-SHA256 beide manierenPHP · Knooppunt · Python SDKsOpenAPI 3.0.3_ contract100%__ audit dekking
Verzoek ondertekend in
Ondertekend webhook out → 200 OK
Levend curl → OpsIQ → ondertekende webhook POST /v1/actions/run X-OpsIQ-Handtekening { "action": "teruggave" "bevestigd": waar } VERIFY · RUN · CONTROLE handtekening rol + toepassingsgebied auditrij geschreven @opsiq/sdk widget betreffende de "actie. executed") HMAC → handvat verifiëren 200_ OK
3officiële SDK's: PHP, Node, Python
HMACSHA-256 ondertekend op elke aanvraag
40+universele evenementen om te abonneren
100%de dekking van het auditlog over acties;
De levenscyclus van de aanvraag

Verzoek om in te mogen. Getekend webhook uit.

Je POST naar de OpsIQ API met je scoped Bearer key. OpsIQ controleert de omvang en rol, voert de gecontracteerde actie, schrijft een audit rij - dan vuurt een HMAC-signed webhook terug naar uw eindpunt. Elke hop is geauthentiseerd, idempotent en opnieuw getest bij falen.

HMAC-SHA256 webhooks - inkomende en uitgaande webhook payloads worden ondertekend over de ruwe body; API_ calls authenticeren met een scoped Bearer key.
Automatische herhalingen - mislukte leveringen terug en opnieuw proberen, met een levering ID die u kunt traceren.
Idempotentietoetsen - replay-safe door ontwerp, dus een opnieuw opgehaalde levering nooit dubbel-acts.
Uw app POST /v1/actions/run X-OpsIQ-Handtekening X-OpsIQ-Tijdstempel VERIFIËREN - UITVOEREN - AUDITEN Uw eindpunt POST /webhooks HMAC verifiëren 200_ OK ondertekening geverifieerd toepassingsgebied + rol gecontroleerd gecontracteerde actie uitgevoerd auditrij geschreven Getekend Webhook PAYLOAD { "uitvinden": "actie. executed," "levering_id": "dlv_8f2a9," idempotency_key: "idem_31c7," "handtekening": "sha256=9c4e0a7b..." } geleverd
01 ondertekend verzoek 02 HMAC verifiëren 03 contract 04 auditrij schrijven 05 ondertekende webhook
Snelstart

Van nul naar een live integratie in Vier stappen.

Genereer een sleutel, vuur je eerste evenement af, schrijf je in op een webhook, registreer een actie. Je kunt de hele lus tegen de zandbak draaien voordat je productiegegevens aanraakt.

Sandbox-consoleVerbonden
DEVELOPER CONSOLE · zandbak 1 · Sleutel genereren opq_live_xxx · één scope-bezitter sleutel 2 · Een gebeurtenis afvuren POST /v1/events/fire "order. shipped" 3 · Schrijf een webhook in → https://api.you.com/webhooks 4· Een actie registreren saas. refund_invoice · gecontroleerde
BevorderingSandbox → productie, zelfde code
01

Haal een sleutel.

Aanmelden en een scoped drager genereren API sleutel (opq_…) in de instellingen van de ontwikkelaar, en geven elke integratie alleen de oppervlakken die het nodig heeft.

02

Vuur & abonneren

POST een ondertekend events/fire (of gebruik een SDK) en wijs dan elke URL_ op elk evenement, ondertekend, met een levering ID en back-off opnieuw.

03

Een actie registreren

Een ondertekend actiecontract aangeven zodat de AI veilig kan opereren, met rolcontroles, bevestigingsbeleid en een volledig auditspoor.

Hoe het bij elkaar past

Eén connectorpatroon. Vijf schone primitieven.

Alles wat per platform specifiek in een connector leeft. De kern OpsIQ blijft generiek, de AI blijft voorspelbaar en je integratie blijft auditeerbaar.

01
Triggers

Vertel.OpsIQWat er net gebeurde.

Brand universele gebeurtenissen vanaf uw platform - of uw eigen aangepaste evenementnamen. Elke abonnee reageert in real time, in prioriteitsvolgorde.

Referentie gebeurtenis
invoice.paid events. fire() AI hersenenLive context regelsprioriteit 20_ spiegelschrijf eerst webhookondertekend
Universeel + aangepaste evenementeninvoice.paid, ticket.created, subscription.cancelled, customer.signed_up Of je eigen. Abonnees voor de ventilatorDe AI-hersenen, automatiseringsregels, spiegelconnectoren en je webhaak-eindpunten reageren allemaal. PrioriteitDeterministische verzending, zodat spiegels schrijven voordat ze brand melden.
02 / Actiecontracten

Vertel OpsIQ wat de AI mag doen.

Een actie contract is een ondertekende JSON verklaring: wat de actie doet, welke rollen kan uitvoeren, welke parameters het accepteert, of bevestiging nodig is, en het eindpunt om aan te roepen.

Actieschema
De AI kan geen acties verzinnen.Het kan alleen vragen om degene te runnen die je hebt geregistreerd. BevestigingsbeleidRisicovolle acties leiden tot een preview kaart voordat een bijwerking. Rol + oppervlakteafdichtingElke actie verklaart de rollen en oppervlakken toegestaan om het te draaien.
Actiecontract - 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 / Getekende webhooks

Druk gebeurtenissen naar uw stack - met cryptografische bewijs.

Abonneer je op eender welke gebeurtenis URL_ OpsIQ_ POSTs the JSON payload ondertekend met HMAC-SHA256 over de ruwe body - verifieer het in een paar regels.

Bescherming tegen herhalingTraceerbare leverings-IDTerugloop
Webhook-referentie
webhook verifiëren - 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's

Drop-in clients voor de taal die u al gebruikt.

Drie officiële SDK's behandelen authenticatie, ondertekening, retrieves, idempotency toetsen en getypte reacties. Of blijf framework-vrij - elke SDK is een dunne wrapper rond hetzelfde REST oppervlak.

Voorbeelden van klanten
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+3.10+3.0.3
05 / Het verbindingspatroon

Bouw één keer, plug alles in.

Een connector is een map met één PHP-klasse. OpsIQ ontdekt het, de register draden van de gebeurtenissen en uw platform specifieke code blijft schoon gescheiden van de kern.

Hulplijn voor connectoren
Vijf hakenidentityProviders(), contextProviders(), registerActions(), subscribers(), handleWebhook(). Manifest-gedrevenactions.json en settings.json contracten en configuren aanmelden. Automatisch ontdektLaat de map vallen, teken het, zet het in admin.
Van intentie tot veilige actie

Gewoon Engels in. Gecontroleerde operatie.

OpsIQ_ verzint nooit de juiste oproep. Het loopt door de geregistreerde contracten, bereidt de lading, vraagt om bevestiging wanneer de actie vereist, en produceert een volledige audit rij wanneer het uitvoert, dus een AI die kan besluit wordt nooit een Al die je niet kunt vertrouwen.

Contractgebonden. De AI stelt alleen acties voor die je hebt geregistreerd.
Bevestig voordat de bijwerkingen optreden. Risicovolle acties maken eerst een preview kaart zichtbaar.
Helemaal terugroepen. Elke prompt, reactie en actie resultaat vastgelegd in AI Geschiedenis.
4_ stappenIntent → audit
HMACondertekend voor uitvoering
"terugbetaal Adams laatste factuur" Stap 1 · Intent resolutie → gematcht: saas. refund_invoice oppervlakte: admin · rol: eigenaar · Stap 2 valideren Stap 3 · Bevestig & ondertekenen voorbeeldkaart · factuur #8421 Bevestigen Stap 4 · Controlerij actor · prompt · resultaat · 412ms Alleen-eigenaar · exporteerbaar als CSV
Geen uitvindbare oproepenalleen contractregister
Bevestig-gaatedvoorbeeld voor bijwerkingen
100%_ gecontroleerdprompt + respons + resultaat
Rubrieknummer

API oppervlakte in een oogopslag.

Elk kerneindpunt, zijn auth, idempotentie en per-key snelheid limiet. De volledige machine leesbare contract leeft in de OpenAPI 3.0.3 referentie.

OpenAPI 3.0.3_ referentie
EindpuntAuthIdempotentMaximumpercentage
SchrijvenGetekende zij-effectoppervlakken
POST /v1/events/fireHMACJa.1000/min
POST /v1/actions/runHMACJa.200/min
POST /v1/webhooks/testHMACJa.60/min
GelezenContext, tickets en connector inventaris
GET /v1/customers/{id}HMACJa.2000/min
GET /v1/ticketsHMACJa.2000/min
GET /v1/connectorsHMACJa.2000/min

De limiet van de tarieven is per sleutel en wordt op elke reactie als X-OpsIQ-RateLimit-Remaining; overschrijding van een limietrendement 429 met een Retry-After header. Het volledige machineleesbare contract (elke eindpunt, schema en fout) leeft in de OpenAPI 3.0.3_ referentie.

Bouw een connector

Schip een connector in Vijf stappen.

Een connector is een zelfstandige map. OpsIQ ontdekt het, de register draden van de gebeurtenissen, en uw platform-specifieke code nooit lekken in de kern.

1Een map met connector.php verlengen AbstractConnector.
2Aangeven actions.json en settings.json manifesten.
3Implementeer identiteit, context en webhook providers.
4Abonneer je op de gebeurtenissen waar je om geeft.
5Teken het, laat het vallen, en schakel het in admin.
Test voordat u het schip

Een zandbaksleutel en een webhaaktester.

Elke werkruimte stelt een zandbak bloot: een aparte toets die dezelfde API_ oppervlak raakt zonder productiegegevens aan te raken. POST /v1/webhooks/test om een ondertekende levering van monsters op uw eindpunt af te vuren en uw handtekeningverificatie te bevestigen voordat u live gaat. Zelfgehoste installaties draaien hetzelfde codepad, zonder gedragsdrift tussen cloud en on-prem.

Sandbox-sleutels Webhook-tester Cron-gedreven banen Cloud- & zelf-hosted pariteit
connector. php · php
klasse Acme-connector breidt uit AbstractConnector { publieke functie sleutel(): tekenreeks { retour 'acme'; } // Oplossen wie de actor is publieke functie identiteits-bieders(): array { retour [nieuw AcmeIdentityProvider()]; } // Voer levende gegevens in de AI-prompt publieke functie Gebruik de functie contextProviders(): array { retour [nieuw AcmeContextProvider()]; } // Reageren op OpsIQ gebeurtenissen publieke functie abonnees(): array { retour ['factuur. betaald' => [nieuw BillingMirror()]]; } // Ontvang inkomende webhooks van Acme publieke functie HandleWebhook(array $body): leeg { /* … */ } }
Hoe het vergelijkt

OpsIQ vs een Integratie van doe-het-zelf.

Wat een contract gebonden, ondertekend, gecontroleerd platform geeft je dat het rollen van uw eigen webhooks en AI-actie loodgieters nooit zal.

VermogenRol je eigenOpsIQ_
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) Varieert
Connector pattern: platform code stays isolated
Veelgestelde vragen

Ontwikkelaarsvragen, Antwoord.

Auth, handtekeningen, SDK's, sandboxing en het connectormodel: alles wat u voor het eerste verzoek vraagt.

API_ aanroepen authenticeren met een enkele scoped Bearer sleutel: verzenden Authorization: Bearer opq_…. OpsIQ controleert de omvang van de sleutel en de rol van de actor voordat er iets wordt uitgevoerd. Webhooks zijn apart: elke webhook OpsIQ stuurt draagt een X-OpsIQ-Signature (een hex HMAC-SHA256 van het ruwe lichaam) en een X-OpsIQ-Timestamp voor replay bescherming, zodat u ons kunt controleren in ruil, en inkomende webhooks die u verzendt worden op dezelfde manier geverifieerd.
Nee. De AI kan alleen acties voorstellen die in uw actie-contractregister voorkomen. Het kan geen oproep uitvinden. Elk contract verklaart de oppervlaktes, rollen en parameters toegestaan, en elke actie gemarkeerd requires_confirmation een previewkaart aan een mens geeft voordat het neveneffect loopt.
Bezig met berekenen hash_hmac('sha256', $rawBody, $secret) (een hex-verterend zonder voorvoegsel) en vergelijk het met de X-OpsIQ-Signature kop met constante controle (hash_equalsElke levering bevat ook een tijdstempel, een idempotency sleutel en een levering ID die u kunt traceren. De PHP knipsel op deze pagina is de hele verificatie.
Leveringen die geen 200_ teruggeven worden opnieuw opgepakt met exponentiële back-off, elk met dezelfde idempotency sleutel zodat een opgehaalde levering nooit dubbel-acts. U kunt elke poging door levering ID in admin of uw logs traceren.
Officiële SDK's voor PHP 8.4+, Node. js 18+ en Python 3.10+ handle signing, retries, idempotency keys en getypte reacties. Het zijn dunne wrappers rond het REST oppervlak, zodat u ook uw eigen client kunt genereren uit de gepubliceerde OpenAPI 3.0.3 contract of direct bellen met de API_.
Ja. Elke werkruimte stelt een zandbak bloot met zijn eigen toets die dezelfde API_ oppervlak raakt zonder productiegegevens aan te raken, plus POST /v1/webhooks/test om een ondertekende monster levering op uw eindpunt te schieten en uw verificatie te bevestigen voordat u live gaat.
Ja. Zelfgehoste installeert het identieke codepad (dezelfde ondertekening, dezelfde connector register, hetzelfde OpenAPI contract) dus er is geen gedragsdrift tussen cloud en on-prem.
Een connector is een zelfstandige map met één PHP-klasse die uitbreidbaar is AbstractConnector, plus actions.json en settings.json manifesten. identityProviders(), contextProviders(), registerActions(), subscribers() en handleWebhook(). OpsIQ_ auto-ontdekt het, bedraden de gebeurtenissen en houdt uw platform-specifieke code schoon gescheiden van de kern.