Urobte si platformu Al-operovateľný.
Call 2,415 named operations through one contract-generated API, with least-privilege scopes, workspace pinning, dry-run validation and replay-safe writes. Subscribe to canonical events through HMAC-signed background webhooks, or build a governed package in the six-stage Connector Builder.
Skrytá žiadosť. Podpísal udalosť.
POST /api/v1.php s rozlíšeným Beader kľúčom. OpsIQ kolísky pracovného priestoru, potvrdzuje akčnú zmluvu a oprávnenia, potom vykoná alebo sucho-beží ho. Napísané kanonické udalosti opúšťajú prostredníctvom HMAC-podpísaný dodací frontu s vysledovateľnými pokusmi a ohraničené spätné väzby.
Od kľúča k riadenej integrácii tri kroky.
Vydajte si aspoň kľúč privilege, objavte generovanú zmluvu, nechajte spustiť zápis a potom sa prihláste na webhow, keď vaša aplikácia potrebuje pozadie dodanie udalosti.
Získať kľúč
Zaregistrujte sa a vygenerujte scaped Beader API kľúč (opq_…) v nastaveniach vývojárov a dať každej integrácii len povrchy, ktoré potrebuje.
Objaviť & potvrdenie
Čítanie meta.actions, meta.action a meta.scopes; použitie dry_run na overenie zápisu pred vykonaním.
Spustiť & prihlásenie
Pridajte kľúč na písanie, potom prihláste svoj koncový ukazovateľ do kanonické udalosti, ktoré vaša aplikácia potrebuje.
Jeden vzor konektora. Päť čistých primitívov.
Čokoľvek konkrétne platforma žije v konektore OpsIQ jadro zostáva generické, AI zostane predvídateľné a vaša integrácia ostáva kontrolovateľná.
Povedz OpsIQ čo sa práve stalo.
Vydajte sa na kánonické podujatia z vašej platformy, alebo zadefinujte regulovanú vlastnú udalosť. Odberatelia dostanú podujatie prostredníctvom registrovaných pravidiel priority a dodania.
Odkaz na udalosťinvoice.paid, ticket.created, subscription.cancelled, customer.signed_up alebo tvoj vlastný.
Predplatitelia fan-outMozog AI, pravidlá automatizácie, zrkadlové konektory a vaše webové háčky koncové body všetky reagovať.
Prioritný príkazDeterministická dispečing, takže zrkadlá písať pred upozornenia požiaru.
Povedz OpsIQ čo má UI dovolené robiť.
Každá uvedená operácia dostane generovanú zmluvu: rozsah, funkcia, čítanie alebo zápis druhu, riziko, potvrdenie politiky, žiadosť a odpoveď schémy, suché-run podpora, nejasnosti a stabilné chyby.
Schéma akcie{
"action": "tickets.reply",
"kind": "write",
"scopes": ["tickets.write", "admin"],
"feature": "ticket_system",
"risk": "medium",
"confirmation": "recommended",
"idempotency": "supported",
"dry_run": true,
"request": { "type": "object" },
"response": { "required": ["success"] }
}
Tlačte udalosti do koša - s kryptografickým dôkazom.
Subscribe any URL to any of the 52 deliverable events. OpsIQ POSTs the JSON payload signed with HMAC-SHA256 over the scheme version, the timestamp, the delivery ID and the body together, not the body alone, so yesterday's delivery cannot be replayed at you today.
$raw = file_get_contents('php://input');
$sig = $_SERVER['HTTP_X_OPSIQ_SIGNATURE'] ?? ''; // "v2=<hex>"
$ts = (int)($_SERVER['HTTP_X_OPSIQ_TIMESTAMP'] ?? 0);
$id = (int)($_SERVER['HTTP_X_OPSIQ_DELIVERY'] ?? 0);
if (abs(time() - $ts) > 300) http_response_code(401); // replay window
[$ver, $hex] = array_pad(explode('=', $sig, 2), 2, ''); // split the prefix
$signed = $ver . '.' . $ts . '.' . $id . '.' . $raw; // NOT the body alone
$expected = hash_hmac('sha256', $signed, $secret);
if (!hash_equals($expected, $hex)) http_response_code(401);
$event = json_decode($raw, true); // $id is stable across retries
Použite direct HTTP alebo generujte klienta, ktorý uprednostňujete.
Úplný generálAPI je zverejnená ako OpenAPI 3.0.3 a Postman. PHP referenčných odosielateľov plus uzol a Python integračné klienti pokrývajú podpísanú udalosť a toky webhook; každý stack môže volať rovnaký JSON Akčná plocha priamo.
const response = await fetch(`${base}/api/v1.php`, {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.OPSIQ_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
action: "tickets.reply",
dry_run: true,
idempotency_key: crypto.randomUUID(),
body: "Thanks. We are checking this now."
})
});
$payload = json_encode([
'action' => 'tickets.reply',
'dry_run' => true,
'idempotency_key' => bin2hex(random_bytes(16)),
'body' => 'Thanks - we are checking this now.',
]);
$ch = curl_init($base . '/api/v1.php');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('OPSIQ_KEY'),
'Content-Type: application/json',
],
]);
response = requests.post(
f"{base}/api/v1.php",
headers={
"Authorization": f"Bearer {os.environ['OPSIQ_KEY']}",
"Content-Type": "application/json",
},
json={
"action": "tickets.reply",
"dry_run": True,
"idempotency_key": str(uuid.uuid4()),
"body": "Thanks - we are checking this now.",
},
)
Zapojte sa do všetkého.
Konektor je riadený balíček generovaný alebo importovaný prostredníctvom identity, Auth, Test, Akcie, Spúšťače a Recenzie. Jeho manifest deklaruje schopnosti povrchy OpsIQ je povolené ich odhaliť.
Otvoriť šesťstupňového staviteľaJasná angličtina. Auditované operácie ukončené.
OpsIQ nikdy nevynájde správny hovor. Prechádza registrovanými zmluvami, pripravuje užitočné zaťaženie, žiada o potvrdenie, kedy si to akcia vyžaduje a vyrobí úplný riadok auditu pri jeho vykonaní, takže AI, ktorá môže akt Nikdy sa nestane UI, ktorým nemôžeš veriť.
API povrch na prvý pohľad.
One JSON POST surface exposes 2,415 named actions. Each generated contract declares auth scopes, read/write kind, risk, confirmation, request schema, dry-run, idempotency and stable errors.
ACTION tickets.replytickets.writesuchý_run + nevyžiadanosťNastavené / hodinaACTION security.reportsecurity.writesuchý_run + nevyžiadanosťNastavené / hodinaACTION platform.routes.writeadminpotvrdenie + kľúčNastavené / hodinaACTION meta.actionsVerejný objavLen čítanieNastavené / hodinaACTION tickets.listtickets.readLen čítanieNastavené / hodinaACTION connectors.listconnectors.readLen čítanieNastavené / hodinahr.* zmluvy · hr.read / hr.write rozsah pôsobnostiACTION hr.people.listhr.readLen čítanieNastavené / hodinaACTION hr.people.createhr.writesuchý_run + nevyžiadanosťNastavené / hodinaACTION hr.org.treehr.readLen čítanieNastavené / hodinahr dostane odmietnutie, nie prázdny zoznam. Čo je PeopleOS HR.Limity sadzieb sú nakonfigurované podľa kľúča v hodinovom okne. X-RateLimit-Limit, X-RateLimit-Remaining a X-RateLimit-Reset; odmietnuté žiadosti o vrátenie 429 s Retry-AfterPoužite . Zmluva OpenAPI 3.0.3 alebo Zber poštára generované z rovnakých prevádzkových registrov.
Zostavte, otestujte a uvoľnite šesť fáz.
Začnite od riadeného profilu alebo definujte zmluvu sami. Staviteľ potvrdzuje každú etapu predtým, než vytvorí samostatný konektorový balík.
Overte to bezpečne, potom prejdite priechodom.
Použitie dry_run na podporovaných písanie akcií, spustiť ohraničené skúšku pripojenia staviteľa a skontrolovať generované manifest a zmluvu pred vydaním. Kontrola platnosti balíka kontroly spôsobilosti názvy, nastavenia, proveniencie a požadované súbory; pracovníci pozadia zvládnuť reaktívne prieskumy a odchádzajúce dodávky.
Balík nemôže požadovať spôsobilosť jeho kód nemá.
OpsIQ\Connectors\ConnectorContract je autorita. Runtime discovery, Builder, first-party packages, conformance, General API a každý odkaz čítal jeden register. Deklarovať schopnosť a tri súbory musia súhlasiť so sebou pred OpsIQ trasy jeden riadok pre vás.
- 01 connector.php trieda času
- 02 IdentityProvider.php stabilný externý kľúč
- 03 SalesIngest.php zmierenieSales ()
- 04 actions.json uvedené operácie
- 05 settings.json konfigurácia operátora
- 06 connector_contract.json strojovo čitateľný orgán
hmac-sha256 nad deterministickým užitočným zaťažením jedného súboru SHA-256 hashes odpovede bola zmenená od podpisu- A. ed25519 odpovede na podpis bolo podpísané Nabtech, kontrolovateľné s zviazaným verejným kľúčom a žiadne zdieľané tajomstvo. Upraviť jeden bajte a prvé zastavenie zodpovedajúce.
marketplace.json je mimo podpisu podľa definície: inštalátor ho napíše po podpise, takže vydavateľ by ho nikdy nepodpísal.
Strážca, ktorý nikdy nezlyhal. je nepotvrdená.
Zelené testy vám dnes nič nepokazia. Nehovoria, že strážnik, ktorý ste napísali, zastaví vec, ktorú bolo napísané zastaviť, pretože strážca, ktorá sa nikdy nevykonáva, prechádza presne ako strážca a nič nerobí. Takže zastavujeme jeho srdce zámerne a žiadame, aby monitor kričal.
211 /* A read role must never reach a destructive operation. */ 212- if ($isRead && $isDestructive) { 212+ if (false) { 213 $errors[] = "read role '{$role}' points at a destructive op"; 214 return false; 215 }
1[ ok ]hash sha256 4f2a9c1e… remember the file exactly as it is 2[ ok ]control exit 0 green BEFORE anything is touched 3[ ok ]mutate 1 match, lint ok one replacement, then php -l the mutant 4[RED ]prove exit 1 and "read role destructive" IS in the failures 5[ ok ]restore bytes written the original, not a regenerated copy 6[ ok ]verify sha256 matches and the check is green again ══ PROVEN. file restored, hash matched, 1 proof run, 0 failed.
Mutácia sa nikdy nepoužila.
Text vyhľadávania sa nezhodoval, súbor bol nedotknutý, apartmán prešiel a dôkaz nahral zelená pod starým kódom o kóde, ktorý nebol nikdy starý. Chytený tým, že vyžaduje presne jeden textový zápas a porovnanie súborov hašéz oboch stranách.
Mutácia zlomila niečo iné.
Suite sa červená, pretože súbor prestal spracovať alebo topánkytrap zomrela, a dôkaz zaznamenal červený, ktorý nemal nič spoločné so strážcom. Chytený linting mutanta a vyžadujú pomenované skúška medzi poruchami.
Nemôže nechať mutanta na disku.
Každá mutácia kopíruje originál na bokomer mimo webového stromu, píše marker pomenovania vynikajúcej zmeny a je odstránená od rukoväte na každej únikovej ceste. Značka z havarovaného spustiť je ctený pred ďalšou mutáciou tohto súboru.
Certifikácia je príkaz s únikovým kódom.
Not a review queue where somebody reads your code and forms an opinion. Run the same suites we run, on your own machine, before you submit. 8 published JSON Schemas under doc/contracts/schemas/ pokrytie nastavenia, akcie, Stavebné špecifikácie, cesty a obchodné eventy mapovanie, pracovné postupy recepty, konektor zmluvy a vydanie manifestov.
- manifests spracovať a vzájomne súhlasiť
- schopnosti existujú na bežeckej triede
- interfaces implementovaný, ak je deklarovaný
- files každý požadovaný súbor
- akcie, zodpovedá manifestu činností
- destructive vyhlásenie o potvrdení
- Identita stabilný externý kľúč, nie e-mail
- opakovaný záznam opakovaných aktualizácií, nikdy duplikátov
- Podnik Vyhlásenia zodpovedajú rozšíreniu
- Docs ČÍTAJTE, HOVORÍ, ZMENA
- schémy každý JSON potvrdzuje
$ php tools/test_connector_conformance_all.php --connector=acme
$ php tools/test_connector_json_schemas.php
$ php tools/verify_commerce_contracts.php
$ php tools/release_gate_connectors.php --require-signatures
Napíšte prvú na skutočný nevýrobný účet s --live-settings=/secure/test-acme.jsonKým ste stále sťažovať, vymeniť posledný za --unsigned-ok: to sa považuje za chýbajúci podpis ako očakávané varovanie, skôr než predstierať, že je v poriadku.
Deklarácia toho, čo môžete predať je súbor, nie registrácia.
Konektor, ktorý môže predávať deklaruje, ktoré z vlastné odpoveď operácií OpsIQ je kanonické obchodné roly. Prítomnosť súboru je nárok. Objaví sa v nastavení predaja vo chvíli, keď vyhlási a zmizne, keď prestane. Neexistuje žiadny zoznam, ktorý by sa mohol pripojiť a nikto sa ho nepýtal.
Kánonické písať role mapovaný na generický záznam písať. Zápas je štrukturálna: úložné podstatné meno vedľa mutating slovesá, bez ohľadu na vaše pomenovanie konvencie. Písanie obchodného radu priame preskočí cenu platformy, dostupnosť uzamknutie a potvrdenie pošty, a produkuje objednávku obchodný systém len polovica verí v. Nie recovery Tiež by sme mali byť neobjaviteľní.
{
"commerce": {
"roles": {
"catalog_search": { "operation": "acme_search_products", "transport": "http" },
"order_get": { "operation": "acme_get_order", "transport": "http" },
"order_create": { "operation": "acme_create_order", "transport": "http",
"recovery": "acme_get_order" }
}
}
}
connector_contract.json je generovaný a jeho schéma súbory additionalProperties:falseTakže ručne schválený blok by zlyhal v overení a potom by bol prepísaný na ďalší generátor.
Úloha, ktorá nie je CommerceRole neexistuje. OpsIQ nikdy nepreferuje jednu z názvu operácie, pretože meno nie je sľubom.
Operácia sa musí zobraziť vo Vašom actions.json. Vyhlasovanie, ktorý neexistuje sľubuje zákazníkovi niečo, čo potom nič nevyprodukuje.
Najnebezpečnejší čas je ten po platforme už možno urobil prácu. Bez nesmrteľné "did my write land" hľadať, jediné možnosti sú znovu slepý alebo stratiť objednávku.
Akákoľvek platobná úloha tiež vyhlasuje payment_profile s životné prostredie, webhook_verify používanie vlastného systému poskytovateľa a event_mapNenápadné prostredie je spôsob, akým poskytovateľ testovacieho režimu prijíma živú platbu.
OpsIQ vs a DIY integrácia.
Čo zmluvy viazané, podpísaný, auditovaný platforma vám dáva, že valcovanie vlastných webhooks a AI-action inštalatérstvo nikdy nebude.
| Schopnosť | Vytvorte si vlastný | OpsIQ |
|---|---|---|
| Scopeed Beader API + HMAC-signed webhooks | Ručne valcované | ✓ |
| Suchý beh píše + 24-hodinový úspešný opakovaný záznam | DIY | ✓ |
| 1m→5m→30 m→ 2h → 12hVýhrady | DIY fronty | ✓ |
| Register akcií-zmluvných vzťahov (AI nemôže vymyslieť hovory) | — | ✓ |
| Potvrdzovacia politika pred vedľajšími účinkami | — | ✓ |
| Stabilný chybový obal + ID žiadosti | Ručná protokolácia | ✓ |
| Priame HTTP + generované možnosti klienta | Napíš si vlastný | ✓ |
| OpenAPI 3.0.3 strojom čitateľná zmluva | Možno. | ✓ |
| Staviteľ + brána na uvoľnenie balíka | Zostrojiť reťaz na náradie | ✓ |
| Kľúče s rozlíšením pracovného priestoru a hodinové limity | Vary | ✓ |
| Konektor vzor: kód platformy zostane izolovaný | — | ✓ |
otázky vývojárov, odpovedal.
Autentifikácia, zmluvy, retries, generovanie klienta, bezpečné testovanie a konektor model, pred prvou žiadosťou o výrobu.
Authorization: Bearer opq_…. Kľúče môžu byť neobmedzené, obmedzené alebo len na čítanie, majú najmenej-privilege rozsahy, poslúchať hodinový limit a môže byť pripnutý do pracovného priestoru. Webhook podpis je samostatný: odchádzajúce dodávky vykonávať X-OpsIQ-Signature, X-OpsIQ-Timestamp, X-OpsIQ-Event a X-OpsIQ-Delivery.hash_hmac('sha256', $rawBody, $secret) a porovnať jeho hexadecimálny digestor s X-OpsIQ-Signature použitie hash_equalsOveriť X-OpsIQ-Timestamp v rámci vášho prehrávania a používania X-OpsIQ-Delivery ako identifikátor vysledovateľného dodania.dry_run na akciách, ktorých vytvorená zmluva podporuje, spustite skúšku pripojenia Connector Builder je ohraničený, skontrolujte jeho generované súbory, a prejsť balíček zhody a uvoľnenie brány pred ošetrením konektora ako pripravený.settings.json, voliteľné actions.json, generovaná kapacita zmluva, dokumentácia a voliteľné rozšírenia podniku. Šesťstupňový staviteľ ju zhromažďuje; register ho objavuje; zhoda a uvoľnenie brány potvrdiť.