Fai la tua piattaforma AI-operabile.
OpsIQespone un REST pulitoAPI, HMAC-signed webhooks, un registro di azione-contrattuali e SDK pronti a-ship. Definire che cosa gli eventi fuoco dal sistema, quali azioni l'IA è permesso di eseguire, e quali dati è sicuro da leggere.OpsIQgestisce le firme, i retries, i registri di audit e i flussi di conferma per voi.
Richiesta. Firmato webhook fuori.
L'utente POST al OpsIQ_API con la chiave del cuscinetto a portata di mano. OpsIQ_ controlla l'ambito e il ruolo, esegue l'azione contratta, scrive una riga di audit - poi spara un webhook firmato HMAC al punto finale. Ogni hop è autenticato, idempotent e riattivato sul fallimento.
Da zero a un'integrazione live in quattro passi.
Genera una chiave, spara il tuo primo evento, iscriviti a un webhook, registrati un'azione. Puoi eseguire l'intero ciclo contro la sandbox prima di toccare i dati di produzione.
Prendi una chiave
Registrati e genera un Bearer di portata API key (opq_…) nelle impostazioni dello sviluppatore, e dare ogni integrazione solo le superfici di cui ha bisogno.
Fire & abbonarsi
POST a firma events/fire (o utilizzare un SDK), quindi puntare qualsiasi URL in qualsiasi evento, firmato, con un ID di consegna e un retro-off.
Registrare un'azione
Dichiarare un contratto d'azione firmato in modo che l'IA possa eseguire in modo sicuro operazioni, con controlli di ruolo, politica di conferma e un percorso completo di audit.
Un modello di connettore. Cinque primitivi puliti.
Qualsiasi piattaforma-specifica vive in un connettore. Il core OpsIQ rimane generico, l'intelligenza artificiale rimane prevedibile e la tua integrazione resta verificabile.
Dillo.OpsIQquello che e' appena successo.
Gli eventi universali di fuoco dalla vostra piattaforma - o i vostri nomi di eventi personalizzati. Ogni abbonato reagisce in tempo reale, in ordine prioritario.
Riferimentoinvoice.paid, ticket.created, subscription.cancelled, customer.signed_up o il tuo.
Abbonati Fan-outIl cervello AI, regole di automazione, connettori a specchio e i endpoint webhook reagiscono tutti.
Ordine prioritarioLa spedizione di deternistica così gli specchi scrivono prima di avvisare il fuoco.
Dillo.OpsIQche cosa l'IA è permesso di fare.
Un contratto d'azione è una dichiarazione firmata JSON: che cosa fa l'azione, quali ruoli possono eseguirlo, quali parametri accetta, se è richiesta la conferma e il punto finale da chiamare.
Schema di azione{
"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
}
Spingere gli eventi al vostro stack - con la prova crittografica.
Iscriviti qualsiasi URL_ a qualsiasi evento. OpsIQ_ POSTs the JSON_ payload firmato con HMAC-SHA256 sul corpo grezzo - verificalo in poche righe.
$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);
Clienti drop-in per la lingua che si utilizza già.
Tre SDK ufficiali gestiscono l'autenticazione, la firma, i retries, idempotency key e le risposte digitate. O rimangono senza framework - ogni SDK è un wrapper sottile intorno alla stessa superficie REST.
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",
})
Costruisci una volta, infilati in qualsiasi cosa.
Un connettore è una cartella con una classe PHP. OpsIQ_ lo scopre, il registro collega gli eventi e il codice specifico della piattaforma rimane pulito separato dal nucleo.
Guida del connettoreidentityProviders(), contextProviders(), registerActions(), subscribers(), handleWebhook().
Manifestoactions.json e settings.json dichiarare contratti e config.
Auto-scopertaGetta la cartella, firmala, abilitalo in admin.
In inglese. E' stata controllata.
OpsIQ non inventa mai la chiamata giusta. Passa attraverso i contratti registrati, prepara il carico di pagamento, chiede la conferma quando l'azione lo richiede e produce una riga di audit completa quando esegue, in modo da un AI che può atto non diventa mai un'intelligenza artificiale di cui non puoi fidarti.
APIsuperficie a colpo d'occhio.
Ogni punto di riferimento, il suo limite di auth, idempotency e per-key rate. Il contratto completo leggibile dalla macchina vive nel riferimento OpenAPI 3.0.3_.
POST /v1/events/fireHMACSì.1000 / minPOST /v1/actions/runHMACSì.200 / minPOST /v1/webhooks/testHMACSì.60 / minGET /v1/customers/{id}HMACSì.2000 / minGET /v1/ticketsHMACSì.2000 / minGET /v1/connectorsHMACSì.2000 / minI limiti di tariffa sono per chiave e restituiti su ogni risposta come X-OpsIQ-RateLimit-Remaining; superiore a un limite di rendimenti 429 con un Retry-After intestazione. Il contratto completo di lettura della macchina (ogni punto finale, schema ed errore) vive nella OpenAPI 3.0.3 riferimento.
Nascondi un connettore 5 passi.
Un connettore è una cartella autocontenuta. OpsIQ lo scopre, il registro collega gli eventi e il codice specifico della piattaforma non perde mai nel core.
connector.php proroga AbstractConnector.actions.json e settings.json Si manifesta.Una chiave di sandbox e un tester webhook.
Ogni spazio di lavoro espone una sandbox: una chiave separata che colpisce la stessa superficie API senza toccare i dati di produzione. POST /v1/webhooks/test per lanciare una consegna di campioni firmata al vostro punto finale e confermare la vostra verifica firma prima di andare in diretta.
OpsIQcontro un Integrazione fai da te.
Che una piattaforma a contratto, firmata e controllata ti dà che rotolare i tuoi webhooks e AI-action idraulico mai lo farà.
| Capacità | Fai come ti pare. | 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) | Vasi | ✓ |
| Connector pattern: platform code stays isolated | — | ✓ |
Domande sullo sviluppatore, rispose.
Auth, firme, SDK, sandboxing e il modello di connettore: tutto quello che chiederai prima della prima richiesta.
Authorization: Bearer opq_…. OpsIQ controlla la portata della chiave e il ruolo dell'attore prima di tutto viene eseguito. Webhooks sono separati: ogni webhook OpsIQ__ invia porta un X-OpsIQ-Signature (un esagonale HMAC-SHA256 del corpo grezzo) e un X-OpsIQ-Timestamp per la protezione di riproduzione, in modo da poterci verificare in cambio, e webhooks in entrata che si invia sono verificati allo stesso modo.requires_confirmation superfici una carta di anteprima a un umano prima che l'effetto collaterale funzioni.hash_hmac('sha256', $rawBody, $secret) (un esagonale digerente senza prefisso) e confrontarlo con X-OpsIQ-Signature intestazione con un controllo costante (hash_equals). Ogni consegna porta anche un timestamp, una chiave di idempotency e un ID di consegna che puoi tracciare. Il cecchino PHP in questa pagina è l'intera verifica.POST /v1/webhooks/test per sparare una consegna di campioni firmata al vostro punto finale e confermare la verifica prima di andare in diretta.AbstractConnector# Piu' # actions.json e settings.json manifesti. identityProviders(), contextProviders(), registerActions(), subscribers() e handleWebhook(). OpsIQ_ lo scopre automaticamente, collega gli eventi e mantiene il codice specifico della piattaforma pulitamente separato dal core.