Tee alustasta Tekoälyä voidaan käyttää.
Call 2,418 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.
- Pyydän. -Ei.
Jälkeenpäin /api/v1.php jossa on tarkkailtu Karhu-avain. OpsIQ nastaa työtilan, validoi toimintasopimuksen ja oikeudet, sitten suorittaa tai kuivajuoksuttaa sen. Merkityt kanoniset tapahtumat lähtevät kautta HMAC-allekirjoitettu toimitusjono jäljitettävissä yrityksiä ja rajoittaa retries.
Avaimesta kotoutumisen hallintaan kolme askelmaa.
Anna vähiten privilege avain, löytää luotu sopimus, kuiva-ajo kirjoittaa, sitten tilata webkoukku, kun sovellus tarvitsee taustatapahtuman toimitus.
Hae avain.
Rekisteröidy ja luo tähystetty karhu API avain (opq_…) kehittäjän asetukset, ja antaa jokaiselle integraatio vain pinnat se tarvitsee.
Etsi ja validoi
Lue meta.actions, meta.action sekä meta.scopes; käyttö dry_run vahvistaa kirjoittaa ennen teloitusta.
Suorita & tilaus
Lisää idempotency avain kirjoittaa, sitten tilata päätepiste kanoniset tapahtumat sovelluksen tarvitset.
Yksi liitinkuvio. Viisi puhdasta alkuasukasta.
Kaikki alustakohtainen elää liittimessä. OpsIQ Ydin pysyy geneerisenä, tekoäly pysyy ennustettavana ja integraatio pysyy tarkastettavissa.
Kerro OpsIQ Mitä juuri tapahtui.
Emit kanoniset tapahtumat alustaltasi tai määrittää hallitun mukautetun tapahtuman. Tilaajat saavat tapahtuman rekisteröityjen prioriteetti- ja toimitussääntöjen kautta.
Tapahtuman viiteinvoice.paid, ticket.created, subscription.cancelled, customer.signed_up Tai sinun.
LannoitustilaajatTekoälyn aivot, automaatiosäännöt, peililiittimet ja webkoukkusi päätepisteet reagoivat.
Etusijainen järjestysMäärittelevä lähetys, joten peilit kirjoittavat ennen hälytystä.
Kerro OpsIQ mitä tekoälyllä on lupa tehdä.
Jokainen nimetty operaatio saa aikaan sopimuksen: laajuus, ominaisuus, luku- tai kirjoituslaji, riski, vahvistuskäytäntö, pyyntö ja vastaus skeema, kuivajuoksutuki, idempotency ja vakaat virheet.
Toimintakaavio{
"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"] }
}
Työnnä tapahtumia pino - salaus todiste.
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
Käytä suoraa HTTP tai luoda asiakas haluat.
Koko kenraaliAPI on julkaistu OpenAPI:nä 3.0.3 ja Postman. PHP reference lähettäjät plus Node ja Python integraatio asiakkaat kattavat allekirjoitettu tapahtuma ja webkookin virrat; mikä tahansa pino voi kutsua samaa JSON Toimintapinta suoraan.
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.",
},
)
-Ei, vaan näppäile.
Yhdistäjä on hallittu paketti, joka on luotu tai tuotu Identity, Auth, Test, Toiminnot, Triggers ja Review. Sen ilme ilmoittaa kyky pinnat OpsIQ Saan paljastaa.
Avaa kuusivaiheinen rakentaja-En. - Tarkastettu operaatio.
OpsIQ ei koskaan keksi oikeaa puhelua. Se kulkee rekisteröityjen sopimusten läpi, valmistelee hyötykuorman, pyytää vahvistusta, kun toimi vaatii sitä, ja tuottaa täydellisen tarkastusrivin, kun se suorittaa, joten tekoäly, joka voi säädös -Ei sinusta tule tekoälyä.
API pinta -Ei, vaan silmäyksellä.
One JSON POST surface exposes 2,418 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 + idemponencyMuokkaa / tuntiACTION security.reportsecurity.writedry_run + idemponencyMuokkaa / tuntiACTION platform.routes.writeylläpitovahvistus + avainMuokkaa / tuntiACTION meta.actionsJulkinen löytöVainMuokkaa / tuntiACTION tickets.listtickets.readVainMuokkaa / tuntiACTION connectors.listconnectors.readVainMuokkaa / tuntihr.* sopimukset · hr.read / hr.write SoveltamisalaACTION hr.people.listhr.readVainMuokkaa / tuntiACTION hr.people.createhr.writedry_run + idemponencyMuokkaa / tuntiACTION hr.org.treehr.readVainMuokkaa / tuntihr Hän saa hylätyn, ei tyhjän listan. Mitä PeopleOS HR on.Rate rajat on määritetty avainta kohti tuntiikkunassa. X-RateLimit-Limit, X-RateLimit-Remaining sekä X-RateLimit-Reset; hylätty pyyntö palauttaa 429 kun Retry-After. Käytä OpenAPI 3.0.3 sopimus tai Postinkantajakokoelma jotka on tuotettu samoista ajoaikarekistereistä.
Koosta, testaa ja vapauta kuusi vaihetta.
Aloita ohjatusta profiilista tai määritä sopimus itse. Rakentaja validoi jokaisen vaiheen ennen kuin se luo itsenäisen liitinpaketin.
Validoidaan turvallisesti ja sitten ohitetaan portti.
Käyttö dry_run Tukee kirjoittaa toimia, suorita Builder's rajoitettu yhteys testi, ja tarkastaa luotu manifesti ja sopimus ennen julkaisua. Paketti validointi tarkistaa valmiudet nimet, asetukset, lähtöisyys ja vaaditut tiedostot; taustatyöntekijät käsittelevät reaktiivinen kyselyt ja lähtevä toimitus.
Paketti ei voi vaatia kykyä Sen koodia ei ole.
OpsIQ\Connectors\ConnectorContract Runtime löytö, rakentaja, ensimmäisen osapuolen paketteja, conformance, kenraali API ja jokainen viittaus lukee, että yksi rekisteri. Julista kyky ja kolme tiedostoja on sovittava keskenään ennen OpsIQ Reittiä yksi rivi sinulle.
- 01 connector.php ajoaikaluokka
- 02 IdentityProvider.php vakaa ulkoinen avain
- 03 SalesIngest.php socécéleSales()
- 04 actions.json nimetyt toiminnot
- 05 settings.json Operaattorin konfiguraatio
- 06 connector_contract.json koneellisesti luettava viranomainen
hmac-sha256 per-file SHA-256 hashes an deterministinen hyötykuorma on muutettu allekirjoittamisen jälkeen. An ed25519 allekirjoitusvastaukset Allekirjoittiko se Nabtech, tarkistaa kanssa nippu julkinen avain ja ei jaettu salaisuus. Muokkaa yksi tavu ja ensimmäinen pysähtyy vastaavuutta.
marketplace.json ei ole allekirjoituksen määritelmän mukainen: asentaja kirjoittaa sen allekirjoittamisen jälkeen, joten kustantaja ei olisi voinut allekirjoittaa sitä.
Vartija, joka ei ole koskaan epäonnistunut -Ei ole todistettu.
Vihreät testit eivät kerro, että kirjoittamasi vartija pysäyttäisi sen, - koska vartija, jota ei ole koskaan käytetty, kulkee kuin vartija joka ei tee mitään.
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.
Mutaatio ei koskaan levinnyt.
Hakuteksti ei täsmää, tiedosto oli koskematon, sviitti läpäisi ja todiste tallentui vihreä vanhan koodin alla Se ei ollut koskaan vanhaa koodia.
Mutaatio rikkoi jotain muuta.
Sviitti muuttui punaiseksi, koska tiedosto lakkasi tulkitsemasta tai saappaat kuolivat. nimetty testi epäonnistumisten joukossa.
Se ei voi jättää mutanttia levylle.
Jokainen mutaatio kopioi alkuperäisen sivuvaunuun web-palvellun puun ulkopuolella, kirjoittaa merkkijonon, joka nimeää jäljellä olevan muutoksen ja jonka sammutusohjaaja tekee jokaiselle uloskäynnille. Tuhoutuneesta ajosta saatu merkki on otettu huomioon ennen tiedoston seuraavaa mutaatiota.
Sertifiointi on komento ja poistumiskoodi.
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/ kattaa asetukset, toimet, Builder specs, matka-ja kaupan tapahtumakartoituksia, työnkulun reseptejä, liitin sopimukset ja julkaisu manifestit.
- manifests jäsennelkää ja sopikaa keskenänne
- valmiudet on olemassa ajoaikaluokassa
- interfaces toteutetaan, kun on ilmoitettu
- files kaikki vaaditut tiedostot läsnä
- toimet ottelua toimintoluettelossa
- destructive vahvistus
- henkilöllisyyttä vakaa ulkoinen avain, ei sähköposti
- uusinta toistopäivitykset, eivät koskaan kaksoiskappaleet
- Yritys ilmoitukset vastaavat laajennusta
- dokumentit READ, DEVELOPER, MUUTOKSET
- skeemat joka JSON validoi
$ 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
Osoita ensimmäinen todellinen ei-tuotantotili --live-settings=/secure/test-acme.json. Kun olet vielä itkemässä, vaihtaa viimeinen --unsigned-ok: se kohtelee puuttuvaa allekirjoitusta pikemminkin odotettavissa varoituksena kuin teeskentelee, että se on kunnossa.
Selostaminen mitä voit myydä on tiedosto, ei rekisteri.
Liitos, joka voi myydä ilmoittaa mitä oma toiminnoista vastaa OpsIQ:n kanoninen kaupankäyntiroolit. Tiedoston läsnäolo on vaatimus. Se näkyy myyntiasetuksissa heti kun se ilmoittaa ja katoaa, kun se pysähtyy. Ei ole listaa liittyä eikä kukaan kysyä.
Kanoninen kirjoittaa rooli on suunniteltu yleiseen tietueeseen. Ottelu on rakenteellinen: varastointi substantiivi mutatoivan verbin vieressä, mikä tahansa nimityskäytäntösi. Business-rivin kirjoittaminen suoraan ohittaa alustan hinnoittelun, käytettävyyden lukituksen ja vahvistuksen postin ja tuottaa tilauksen, johon kauppiaan oma järjestelmä vain puolet uskoo. recovery -Ei. Aikalisää ei voi palauttaa.
{
"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 on tuotettu ja sen schema asetetaan additionalProperties:false, joten käsin tehty lohko siellä epäonnistuisi validointi ja sitten ylikirjoitetaan seuraavan generaattorin ajaa.
Ei rooli CommerceRole ei ole olemassa. OpsIQ ei koskaan päätä sellaista operaation nimestä, koska nimi ei ole lupaus.
Operaation täytyy näkyä actions.json. Ilmoittaminen sellainen, jota ei ole olemassa lupaa asiakkaalle jotain, joka sitten tuottaa mitään.
Vaarallisin aikalisä on se, kun alusta on jo ehkä tehnyt työn. Ilman idemotentti "kuollut kirjoittaa maata" etsiä, ainoa vaihtoehto on yrittää uudelleen sokea tai menettää järjestyksessä.
Kaikki maksuluokan tehtävät ilmoitetaan myös payment_profile ja Ympäristö, webhook_verify palveluntarjoajan oman järjestelmän käyttäminen, ja event_map. Tekstaamaton ympäristö on se, miten testi-moodi tarjoaja ottaa suoran maksun.
OpsIQ vs - DIY-kotoutuminen.
Mitä sopimus sitova, allekirjoitettu, tarkastettu alusta antaa sinulle, että kääriminen omia webkoukkuja ja tekoäly-toiminta putkistot koskaan.
| Voimavara | Pyöritä omaasi | OpsIQ |
|---|---|---|
| Laajakarhu API + HMAC-allekirjoitetut webkoukkuja | muut, poikkileikkaukseltaan ympyrän muotoiset | ✓ |
| Kuivajuoksun kirjoittaminen + 24- tunnin onnistunut uusinta | KUOLE | ✓ |
| 1m→5m→30m→ 2h → 12hretriesCity in Ontario Canada | DIY-jono | ✓ |
| Toimintasopimusrekisteri (AI ei voi keksiä puheluja) | — | ✓ |
| Vahvistuspolitiikka ennen sivuvaikutuksia | — | ✓ |
| Tilan virhekuoren ja pyyntötunnisteiden | Manuaalinen kirjautuminen | ✓ |
| Suora HTTP + luodut asiakasvalinnat | Kirjoita omasi | ✓ |
| OpenAPI 3.0.3 koneellisesti luettava sopimus | Ehkä. | ✓ |
| Kuusivaiheinen rakentaja + pakettien vapautusportti | Koosta työkaluketju | ✓ |
| Työtilan näppäimistö ja tuntirajat | Vaihtelee | ✓ |
| Liittimen kuvio: alustakoodi pysyy eristyksissä | — | ✓ |
Kehittäjän kysymykset Vastasit.
Tunnistaminen, sopimukset, retries, asiakastuotanto, turvallinen testaus ja liitinmalli, ennen ensimmäistä tuotantopyyntöä.
Authorization: Bearer opq_…. Avaimet voivat olla rajoittamaton, rajoitettu tai luku-vain, kuljettaa vähiten privilege soveltamisalat, noudattaa tunnin raja ja voidaan kiinnittää työtilaan. Webkook allekirjoitus on erillinen: lähtevät toimitukset kuljettaa X-OpsIQ-Signature, X-OpsIQ-Timestamp, X-OpsIQ-Event sekä X-OpsIQ-Delivery.hash_hmac('sha256', $rawBody, $secret) ja verrata sen heksadesimaalin sulatus X-OpsIQ-Signature käytetään hash_equals. Validoidaan X-OpsIQ-Timestamp sisällä replay ikkunan ja käyttää X-OpsIQ-Delivery jäljitettävänä toimitustunnisteena.dry_run Teoista, joiden luoma sopimus tukee sitä, suorita Connector Builderin rajoitettu kytkentätesti, tarkasta sen luodut tiedostot ja läpäise pakkauksen conformance- ja vapautusportit ennen kuin käsittelet liitintä valmiina.settings.json, vapaaehtoinen actions.json, luotu kykysopimus, dokumentaatio ja valinnaisia yrityksen laajennuksia. Kuusivaiheinen rakentaja kokoaa sen; rekisteri löytää sen; conformance ja julkaisu portit validoivat sen.