Vytvořte si platformu - Dá se to ovládat.
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.
Přihlásím žádost. - Vyhlášená událost.
POST akce na /api/v1.php s skenovaným klíčem pro doručování. OpsIQ pins pracovní prostor, validuje akční smlouvu a oprávnění, pak provede nebo suchost-běží to. Odepsaný kanonické události opustit přes HMAC- signed doručovací fronta s vysledovatelné pokusy a ohraničené retry.
Od klíče k řízené integraci v Tři kroky.
Vydejte klíč pro získání práv, objevte vytvořenou smlouvu, vysušte ji a zapište, pak přihlaste webhook, když vaše aplikace potřebuje doručit pozadí události.
Získat klíč
Zaregistrujte se a generujte skenovaný klíč Nosiče API (opq_…) v nastavení vývojářů, a dát každé integraci pouze povrchy, které potřebuje.
Objevte & validovat
Čtěte meta.actions, meta.action a meta.scopes; použití dry_run Potvrdit zápis před provedením.
Spustit & předplatné
Přidejte idempotentní klíč pro psaní, pak přihlaste svůj koncový bod k kanonickým událostem, které aplikace potřebuje.
Jeden vzor konektoru. Pět čistých primitivů.
Cokoliv platform- specific žije v konektoru. OpsIQ jádro zůstane obecné, AI zůstane předvídatelné, a vaše integrace zůstane auditovatelná.
Řekni OpsIQ, co se právě stalo.
Emit kanonické události z vaší platformy, nebo definovat regulovanou vlastní událost. Odesílatelé obdrží akci prostřednictvím registrovaných pravidel priority a dodání.
Odkaz na událostinvoice.paid, ticket.created, subscription.cancelled, customer.signed_up nebo vlastní.
PředplatiteléAI mozek, automatizace pravidel, zrcadlové konektory a váš webhook koncové body všechny reagovat.
Prioritní pořadíDeterministické expedice, takže zrcadla napíšou, než se spustí požár.
Řekni OpsIQ, co může AI dělat.
Každá jmenovaná operace obdrží generovanou smlouvu: rozsah, funkce, čtení nebo zápis druhu, riziko, potvrzení politiky, žádost a odpověď schéma, suchost-run podpora, idempotence a stabilní chyby.
Akční sché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"] }
}
Tlačte události do zásobníku - s kryptografickým důkazem.
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žijte přímý HTTP nebo generovat klienta, který se vám líbí.
Celý generál.API je publikován jako OpenAPI 3.0.3 a Postman. PHP reference senders plus Node a Python integration clients cover signed event and webhook flows; any stack can call the same JSON akční plocha přímo.
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.",
},
)
Jednou se postavíme, zapojíme se do čehokoliv.
Konektor je řízený balíček generovaný nebo importovaný prostřednictvím identity, Auth, Test, Akce, Triggers a Review. Jeho manifest prohlašuje, že jsou možné povrchy OpsIQ.
Otevřít šestistupňový builder- Je to v angličtině. Auditovaná operace.
OpsIQ nikdy nevynalezne správné volání. Prochází registrovanými smlouvami, připravuje užitečné zatížení, žádá o potvrzení, když to akce vyžaduje, a vytváří kompletní řádek auditu, když provádí, takže AI, který může akt Nikdy se nestane AI, které nemůžeš věřit.
API povrch na první pohled.
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 + idempotenceKonfigurovaná / hodinaACTION security.reportsecurity.writedry_run + idempotenceKonfigurovaná / hodinaACTION platform.routes.writeadminpotvrzení + klíčKonfigurovaná / hodinaACTION meta.actionsVeřejný objevPouze pro čteníKonfigurovaná / hodinaACTION tickets.listtickets.readPouze pro čteníKonfigurovaná / hodinaACTION connectors.listconnectors.readPouze pro čteníKonfigurovaná / hodinahr.* smlouvy · hr.read / hr.write StrojkyACTION hr.people.listhr.readPouze pro čteníKonfigurovaná / hodinaACTION hr.people.createhr.writedry_run + idempotenceKonfigurovaná / hodinaACTION hr.org.treehr.readPouze pro čteníKonfigurovaná / hodinahr dostane odmítnutí, ne prázdný seznam. Co je PeopleOS HR.Meze rychlosti jsou nastaveny na klíč v hodinovém okně. X-RateLimit-Limit, X-RateLimit-Remaining a X-RateLimit-Reset; zamítnutá žádost se vrací 429 s Retry-After. Použijte Smlouva OpenAPI 3.0.3 nebo Sbírka pošt Vyrobeno ze stejných registrů runtime.
Budovat, testovat a uvolnit v šest fází.
Začněte od řízeného profilu nebo definujte smlouvu sami. Builder ověřuje každou etapu před tím, než vytvoří vlastní konektorový balíček.
Potvrďte to bezpečně, pak projděte průchodem.
Použití dry_run při podporovaných akcích na zápis spusťte zkoušku ohraničeného spojení Builder a zkontrolujte generovaný manifest a smlouvu před vydáním. Prověřování balíčků kontroluje jména, nastavení, provenience a požadované soubory; pracovníci pozadí zpracovávají reaktivní hlasování a odchozí dodávku.
Balíček nemůže požadovat schopnost jeho kód nemá.
OpsIQ\Connectors\ConnectorContract je autorita. Runtime objev, Builder, first-party balíčky, konformance, General API a každý odkaz číst, že jeden registr. Declare schopnost a tři soubory musí souhlasit s sebou před OpsIQ vede k tobě jen jednu řadu.
- 01 connector.php runtime třída
- 02 IdentityProvider.php stabilní vnější klíč
- 03 SalesIngest.php amortizace ()
- 04 actions.json Název operací
- 05 settings.json konfigurace obsluhy
- 06 connector_contract.json orgán čitelný strojově
hmac-sha256 přes deterministické užitečné zatížení per- file SHA-256 hashes odpovědi byla od podpisu změněna. An ed25519 odpovědi na podpisy Podepsal to Nabtech, kontrolovatelné s balíčkem veřejných klíčů a žádné společné tajemství. Upravit jeden byte a první zastávky odpovídající.
marketplace.json je mimo podpis podle definice: instalátor ji po podpisu napíše, takže vydavatel by nikdy nemohl podepsat.
Stráž, která nikdy nezklamala. je neprokázané.
Zelené testy vám dnes nic nezlomily. Neříkají vám, že strážný, který jste napsal, by zastavil věc, která byla napsána, aby zastavila, protože strážce, který není nikdy vykonáván prochází přesně jako stráž, který nedělá nic. Takže jsme zastavit jeho srdce schválně, a požadovat, aby monitor křičí.
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.
Mutace se nikdy nepoužila.
Text hledání se neshodoval, soubor byl nedotčen, apartmá prošlo a důkaz zaznamenán zelený pod starým kódem o kódu, který nikdy nebyl starý. Chycen tím, že požaduje přesně jeden textový zápas a porovnání souborů hashes na obou stranách.
Mutace zlomila něco jiného.
Apartmá se zčervenalo, protože soubor přestal parsing nebo bootstrap zemřel, a důkaz zaznamenal červenou, která neměla nic společného s stráží. Chycen tím, že linting mutant a vyžaduje pojmenováno test mezi neúspěchy.
Nemůže to nechat mutanta na disku.
Každá mutace kopíruje originál na sidecar mimo strom web- sloužil, píše značku pojmenující vynikající změnu, a je odčiněn vypnutím manipulátor na každé výstupní cestě. Značka z havarovaného běhu je poctěn před další mutací tohoto souboru.
Certifikace je příkaz s výstupním kódem.
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/ pokrytí nastavení, akcí, specifikace stavebního zařízení, mapování událostí v oblasti cesty a obchodu, receptů na pracovní postupy, konektorových smluv a výtiskových manifestů.
- manifests Rozdělte se a dohodněte se navzájem
- schopnosti existují v runtime třídě
- interfaces implementované, pokud je deklarováno
- files každý požadovaný soubor přítomný
- akce Srovnat akce manifest
- destructive deklarovat potvrzení
- totožnost stabilní externí klíč, ne e-mail
- přehrát opakované aktualizace, nikdy se duplikuje
- podnik prohlášení odpovídají rozšíření
- Dokumenty README, ROZVOJ, CHANGELOG
- schémata každý JSON validáty
$ 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
Bod první na skutečném neprodukčním účtu s --live-settings=/secure/test-acme.jsonZatímco jste stále iterační, vyměňte poslední za --unsigned-ok: Zachází s chybějícím podpisem jako s očekávaným varováním, spíše než aby předstíral, že je v pořádku.
Vyhlášení toho, co můžete prodat je složka, ne registrace.
Konektor, který může prodávat prohlašuje, který z vlastní operace odpovídají OpsIQ je kanonické obchodní role. Přítomnost souboru je nárok. Objevuje se v prodejní nastavení okamžiku, kdy prohlašuje a zmizí, když se zastaví. Není žádný seznam připojit a nikdo se zeptat.
Kanonický psát role mapovaný na obecné záznam. Zápas je strukturální: úložiště podstatné vedle mutačního slovesa, bez ohledu na vaše pojmenování konvence. Psaní řádek podnikání přímé přeskočí platforma je cena, dostupnost uzamykání a potvrzení pošty, a vytváří objednávku obchodní vlastní systém jen polovina věří v. Ne recovery Takže timeout by se nevrátilo.
{
"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 generována a jeho schémata sady additionalProperties:falseTakže ručně autorovaný blok by selhal a pak by byl přepsán na další generátor.
Úloha, která není v CommerceRole neexistuje. OpsIQ nikdy nečerpá žádnou z operačního jména, protože jméno není slib.
Operace se musí objevit ve vaší actions.json. Prohlášení, který neexistuje slibuje zákazníkovi něco, co pak produkuje nic.
Nejnebezpečnější timeout je ten, po platformě může již udělal práci. Bez idempotent "to můj psát zemi" hledat, jediné možnosti jsou retry slepé nebo ztratit pořadí.
Každá role třídy výplat také prohlašuje payment_profile s životní prostředí, webhook_verify používání vlastního systému poskytovatele a event_map. Neuváděné prostředí je, jak test- mode poskytovatel bere živé platby.
OpsIQ vs. a Integrace DIY.
Co kontrakt-vázat, podepsal, auditované platforma vám dává, že válení své vlastní webháky a AI- akce instalatérství nikdy nebude.
| Schopnost | Vytvořte si vlastní | OpsIQ |
|---|---|---|
| Kopírovaný nosič API + HMAC- signed webháky | Ručně válcované | ✓ |
| Suchý-run píše + 24-hodina úspěšného přehrávání | DIY | ✓ |
| 1m → 5m → 30m →2h → 12h retries | VÝBĚR ZKOUŠEK | ✓ |
| Action- contract register (AI nemůže vynalézt hovory) | — | ✓ |
| Potvrzovací politika před vedlejšími účinky | — | ✓ |
| Stabilní chybová obálka + ID požadavku | Ruční záznam | ✓ |
| Přímé HTTP + generované klientské možnosti | Napiš si vlastní | ✓ |
| OpenAPI 3.0.3 machine- čitelná smlouva | Možná. | ✓ |
| Six- stage Builder + paket uvolňovací brána | Vytvořit řetězec nástrojů | ✓ |
| Pracovní mezery-připnuté klíče a hodinová omezení | Liší se | ✓ |
| Propojovací vzor: kód plošiny zůstává izolován | — | ✓ |
Otázky vývojářů, Ano.
Autentizace, smlouvy, retry, výroba klientů, bezpečné testování a model konektoru, před prvním požadavkem na výrobu.
Authorization: Bearer opq_…. Klíče mohou být neomezené, omezeny nebo pouze read- only, nést least- privilegium skopy, poslouchat hodinový limit a lze přišpendlit k pracovní prostor. Webhook podpis je oddělen: outbound dodávky přenášet X-OpsIQ-Signature, X-OpsIQ-Timestamp, X-OpsIQ-Event a X-OpsIQ-Delivery.hash_hmac('sha256', $rawBody, $secret) a porovnat jeho hexadecimální stravitelnost s X-OpsIQ-Signature použití hash_equals. Potvrdit X-OpsIQ-Timestamp v okně replay a použití X-OpsIQ-Delivery jako identifikátor vysledovatelné dodávky.dry_run na akcích, jejichž generovaná smlouva ji podporuje, spusťte zkoušku ohraničeného připojení konektoru, zkontrolujte jeho vytvořené soubory a projděte balíčkem shodou a uvolněte brány před tím, než bude konektor připraven.settings.json, volitelné actions.json, generované smlouvy o kapacitě, dokumentace a volitelné rozšíření podniku. Šestistupňový Builder ji sestaví; registr ji objeví; konformita a uvolnění brány validovat.