A platform létrehozása - Az AI- operálható.
Call 2,420 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.
Kérés érkezett. Aláírt esemény.
A POST egy olyan intézkedés, /api/v1.php egy képletes Bearer kulccsal.OpsIQpins a munkaterület, érvényesíti a cselekvési szerződés és engedélyek, majd végrehajtja vagy szárít azt. Feliratkozott kanonikus események hagyja keresztül egy HMAC- Aláírt kézbesítési sor lenyomozható kísérletekkel és határolt relikviákkal.
A legfontosabb a szabályozott integráció Három lépés.
Kiad egy legkevésbé kiváltságos kulcs, felfedezni a létrehozott szerződést, szárít-fut egy írási, majd feliratkozik egy webhook, ha az alkalmazás szüksége háttér esemény szállítás.
Szerezz kulcsot!
Regisztráljon be és generáljon egy opciós Bearer API gombot (opq_…) fejlesztői beállításokban, és minden egyes integráció csak a felületek szükséges.
& Megjelenítés
Olvassa el meta.actions, meta.action és meta.scopes; használat dry_run a kivégzés előtt érvényesíteni a leveleket.
& Előfizetés végrehajtása
Adjon hozzá egy idempotencia kulcsot írások, majd feliratkozzon a végpontot a kanonikus események az alkalmazás szüksége.
Egy csatlakozóminta. Öt tiszta primitívet.
Bármi, ami platformspecifikus, egy csatlakozóban él. A OpsIQ mag általános marad, a MI kiszámítható, és az integrációd ellenőrizhető marad.
Mondja el a OpsIQ -nak, mi történt.
A rendezvény meghirdetése a platformról, vagy egy szabályozott egyéni esemény meghatározása. Az előfizetők a regisztrált elsőbbségi és szállítási szabályok révén kapják meg az eseményt.
A dokumentum hivatkozási számainvoice.paid, ticket.created, subscription.cancelled, customer.signed_up Vagy a sajátodat.
Fan- out előfizetőkAz MI agy, automatizálási szabályok, tükrös csatlakozók és a webhorog végpontok mind reagálnak.
Prioritási sorrendDeterminista feladás, így a tükrök írni, mielőtt a riasztások tüzet.
Mondja el a OpsIQ -nak, hogy mit tehet az MI.
Minden megnevezett művelet kapott egy generált szerződést: hatókör, funkció, olvasás vagy írás, kockázat, visszaigazoló politika, kérés és válasz séma, dry- run támogatás, idempotencia és stabil hibák.
Műveleti séma{
"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"] }
}
Nyomja események a stack - kriptográfiai bizonyíték.
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
Használja a közvetlen HTTP vagy generálja a kliens tetszik.
A teljes tábornokAPI OpenAPI-ként kerül közzétételre 3.0.3 és Postman. A PHP referencia-küldők plusz a Node és a Python integrációs kliensek lefedik az aláírt eseményt és a webhorog áramlást; minden stack hívhatja ugyanazt JSON közvetlenül az akciós felületen.
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.",
},
)
Építs egyet, és dugj bele mindent.
A csatlakozó egy szabályozott csomag, amelyet Identitás, Auth, Test, Akciók, Traktorok és Felülvizsgálat generál vagy importál. A tanúsítvány tartalmazza a OpsIQ képességi felületeit.
A hatfokozatú épület megnyitásaEgyszerű angol. Ellenőrzött művelet.
OpsIQ soha nem találja fel a megfelelő hívást. Átsétál a regisztrált szerződések, előkészíti a hasznos teher, kéri a megerősítést, amikor a cselekvés megköveteli, és létrehoz egy teljes ellenőrzési sor, amikor végrehajtja, így egy AI, hogy cselekvés Soha nem lesz olyan MI, akiben nem bízhatsz.
API felület Egy pillanat.
One JSON POST surface exposes 2,420 named actions. Each generated contract declares auth scopes, read/write kind, risk, confirmation, request schema, dry-run, idempotency and stable errors.
ACTION tickets.replytickets.writedry_run + idemotikumBeállított / óraACTION security.reportsecurity.writedry_run + idemotikumBeállított / óraACTION platform.routes.writeadminmegerősítés + kulcsBeállított / óraACTION meta.actionsNyilvános felfedezésCsak olvashatóBeállított / óraACTION tickets.listtickets.readCsak olvashatóBeállított / óraACTION connectors.listconnectors.readCsak olvashatóBeállított / órahr.* szerződések hr.read / hr.write SzkópACTION hr.people.listhr.readCsak olvashatóBeállított / óraACTION hr.people.createhr.writedry_run + idemotikumBeállított / óraACTION hr.org.treehr.readCsak olvashatóBeállított / órahr Nem üres lista, hanem elutasítás. Milyen típusú gyógyszer a PeopleOS HR?.Az arányhatárok egy óra ablakán vannak beállítva. X-RateLimit-Limit, X-RateLimit-Remaining és X-RateLimit-Reset; elutasított kérelem 429 és Retry-After. Használja a OpenAPI 3.0.3 szerződés vagy Postás gyűjtemény ugyanazon futásidõ-nyilvántartásokból származik.
Építés, tesztelés és kibocsátás hat szakasz.
Kezdje egy szabályozott profilból, vagy határozza meg a szerződést magad. Az Építő érvényesíti minden szakaszban, mielőtt létrehoz egy önálló csatlakozócsomag.
Biztosítsák a biztonsági ellenőrzést, aztán hagyják el a kaput.
Felhasználás dry_run a támogatott írási műveletek, futtassa az Builder határolt kapcsolat teszt, és vizsgálja meg a létrehozott manifeszt és szerződés előtt kiadás. Csomagérvényesítés ellenőrzési képesség nevek, beállítások, eredet és szükséges fájlokat; háttér munkavállalók kezeli reaktív közvélemény-kutatás és külföldre szállítás.
A csomag nem követelhet képességet A kódnak nincs.
OpsIQ\Connectors\ConnectorContract a hatóság. Futási idő felfedezés, a Builder, első-fél csomagok, konformance, a tábornok API és minden hivatkozás azt olvassa, hogy az egyik kibocsátásiegység-forgalmi jegyzék. Declare egy képesség, és három fájl kell, hogy egyetértsenek egymással, mielőtt OpsIQ Egy sor vezet hozzád.
- 01 connector.php a futásidő osztály
- 02 IdentityProvider.php stabil külső kulcs
- 03 SalesIngest.php connecileSales ()
- 04 actions.json a művelet neve
- 05 settings.json Üzemeltető konfigurációja
- 06 connector_contract.json gépi olvasással foglalkozó hatóság
hmac-sha256 A per- file SHA- 256 válaszaival szemben az aláírás óta módosult-e. An ed25519 aláírási válaszok Nabtech írta alá?, ellenőrizhető a csomagban nyilvános kulcs és nincs közös titok. Szerkesztése egy bájt és az első megállók egyező.
marketplace.json az aláírás nem tartozik ide: a telepítő aláírása után írja, így a kiadó soha nem írhatta alá.
Egy őr, aki sosem bukott meg. Nem bizonyított.
A zöld tesztek nem mutatják, hogy ma nem tört el semmi. Nem mondják, hogy az őr, amit írtál, megállítaná azt, amit írt, hogy megállítsa, mert egy őr, aki soha nem gyakorolt, pontosan úgy halad át, mint egy őr aki nem csinál semmit. Ezért szándékosan megállunk a szívével, és követeljük, hogy a monitor sikítson.
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.
A mutáció nem használt.
A keresés szövege nem egyezik, a fájl érintetlen volt, a lakosztály átment, és a bizonyíték rögzítve zöld a régi kód alatt A kód, ami soha nem volt régi. Fogta azáltal, hogy pontosan egy szöveges egyezés és összehasonlítása fájl hashes mindkét oldalon.
A mutáció valami mást is összetört.
A lakosztály pirosra vált, mert a fájl nem oszlik, vagy a bootpanter meghalt, és a bizonyíték egy piros, aminek semmi köze az őrhöz. Fogta behatárolása a mutáns és megköveteli a Név a hibák tesztelése.
Nem hagyhat mutánst a lemezen.
Minden mutáció lemásolja az eredetit egy oldalkocsinak a webes fa előtt, ír egy jelölőt, amely megnevezi a kiemelkedő változást, és egy leállító által kiiktatott kezelőt minden kilépési útvonalon. A lezuhant futásból származó file-jel még a fájl következő mutációja előtt megkerül.
A tanúsítás parancs kilépési kóddal.
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/ fedi a beállításokat, akciókat, építési specifikációkat, utazási és kereskedelmi események feltérképezését, munkafolyamatról szóló recepteket, csatlakozószerződéseket és kiadói manifeszteket.
- manifests Egyezzünk meg és egyezzünk meg.
- képességek létezik a futási idő osztály
- interfaces végrehajtva, ha bejelentették
- files minden szükséges fájl jelen van
- cselekvések a manifesztet
- destructive megerősítés
- személyazonosság stabil külső kulcs, nem e-mail
- visszajátszás egy ismétlődő frissítés, soha nem ismétli
- Vállalkozás a nyilatkozat megfelel a kiterjesztésnek
- dokumentumok README, ALAKÍTÓ, CANGELOG
- séma minden JSON -validátum
$ 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
Az elsőt egy valódi, nem-gyártási számlára kell irányítani, ahol --live-settings=/secure/test-acme.json. Amíg még iterating, cserélje ki az utolsó --unsigned-ok: egy hiányzó aláírást inkább a várható figyelmeztetésnek tekinti, mintsem tetteti, hogy rendben van.
Bejelentem, mit tud eladni. Az akta, nem regisztráció.
A csatlakozó, amely el tudja adni nyilatkozik, hogy melyik saját operations replies OpsIQ canonical kereskedelmi szerepek. A fájl jelenléte az igény. Az eladási beállítások megjelennek abban a pillanatban, amikor kijelenti, és eltűnik, amikor megáll. Nincs lista, hogy csatlakozzon, és senki sem kér.
Kanonika. Írj! A játék strukturális: egy tároló főnév mellett mutáló ige, függetlenül a megnevezéstől. Írása az üzleti sor közvetlenül kihagyja a platform árképzés, rendelkezésre állás zárolása és megerősítő mail, és létrehoz egy megrendelést a kereskedő saját rendszere csak fele hisz. recovery Szóval a kimaradás nem lenne visszaszerezhető.
{
"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 generált és a séma készletek additionalProperties:falseEgy kézzel készített blokk nem működne, és a következő generátorra írnák felül.
Nem szerephez CommerceRole OpsIQ soha nem ad ki operációs nevet, mert a név nem ígéret.
A művelet kell megjelennie az Ön actions.json. Nyilatkozat egy nem létező ígéretek az ügyfél valamit, hogy akkor nem termel semmit.
A legveszélyesebb időkérés az, hogy miután a platform már elvégezte a munkát. Egy idempotens "nem én írói föld" keresés nélkül az egyetlen lehetőség, hogy újra vak vagy elveszíti a megrendelést.
Minden kifizetési osztály szerepe is kijelenti payment_profile a környezet, webhook_verify a szolgáltató saját rendszerének alkalmazása, és event_map. Egy ki nem mondott környezet, hogyan egy tesztalkatú szolgáltató vesz élő fizetés.
OpsIQ vs egy DIY integráció.
Amit egy szerződéskötéses, aláírt, ellenőrzött platform ad, az a saját webhorog és az AI- akciós vízvezeték gördítése soha nem fog.
| Képesség | Tekerje a sajátját | OpsIQ |
|---|---|---|
| A API + HMAC- dedikált webhorog | Kézi csavarmenetes | ✓ |
| Dry- run writes + 24- hour successed visszajátszás | DIY | ✓ |
| 1m → 5m → 30m →2h → 12h ismételt vizsgálatok | DIY sor | ✓ |
| Akció-szerződés regisztere (AI nem tudja feltalálni a hívásokat) | — | ✓ |
| Megerősítési politika az oldalhatások előtt | — | ✓ |
| A hibabeosztás + kérési azonosítók stabilak | Kézi naplózás | ✓ |
| Közvetlen HTTP + generált kliens opciók | Írj magadnak. | ✓ |
| OpenAPI 3.0.3 gépi olvasásra alkalmas szerződés | Talán. | ✓ |
| Six- stádiumú Builder + csomagkiadó kapu | Szerszámlánc építése | ✓ |
| Műhelytartók és óránkénti korlátok | Megváltozások | ✓ |
| Csatlakozó minta: a platform kódja elszigetelt marad | — | ✓ |
Fejlesztői kérdések, Válaszolt.
Hitelesítés, szerződések, relék, kliens generáció, biztonságos tesztelés és a csatlakozó modell, az első gyártási kérés előtt.
Authorization: Bearer opq_…. Kulcsok lehet korlátozás nélkül, korlátozott vagy csak olvasható, a legkisebb kiváltságos- távcső, engedelmeskedik egy órabér és lehet rögzíteni a munkaterületen. Webhorog aláírás külön: külsõ szállítások X-OpsIQ-Signature, X-OpsIQ-Timestamp, X-OpsIQ-Event és X-OpsIQ-Delivery.hash_hmac('sha256', $rawBody, $secret) és hasonlítsa össze hexadecimális emésztését X-OpsIQ-Signature alkalmazás hash_equals. Jóváhagyás X-OpsIQ-Timestamp a visszajátszás ablakban és használja X-OpsIQ-Delivery a nyomon követhető szállítási azonosító.dry_run a létrejött szerződés által támogatott tevékenységek esetében futtassa le a Connector Builder határolt kapcsolatfelvételi tesztjét, ellenőrizze a generált fájlokat, és adja át a csomag konformancia- és felszabadítási kapukat, mielőtt a csatlakozó készen állna.settings.json, választható actions.jsonA hatfokozatú Építő összefoglalja; a regiszterben felfedezi; konformancia- és felszabadítási kapuk hitelesítik.