platformunuzu yapın Yapay zeka ile çalışabilir.
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.
Kapsama talep. Oturuma kaydolun.
POST Bir Eylem /api/v1.php Bir kapsa anahtarı ile. OpsIQ iş alanı pins, eylem sözleşmesini ve izinlerini doğrular, sonra bunu yürütür veya kuru-runlar. Abone olarak, HMAC tarafından belirlenen bir teslimat kuyruğundan takip edilebilir girişimler ve bağlı yeniden kurulabilir.
En önemliden entegrasyon Üç adım.
En az kardi bir anahtar sorun, üretilen sözleşmeyi keşfedin, kuru-bir yazıyı takip edin, sonra uygulamanızın arka plan etkinliği teslimatına ihtiyaç duyduğunda bir webhook abone olun.
Bir anahtar alın
Kayıt olun ve bir kapsamın Ayıer API anahtar (YouTube)opq_…Geliştirici ayarlarında ve her entegrasyona sadece ihtiyaç duyduğu yüzeyler verir.
Discover & Valid
Read Oku meta.actions, meta.action ve meta.scopes· kullanım dry_run Uygulamadan önce yazı doğrulamak için.
Execute & abone
Yazı için bir idempotency anahtar ekleyin, sonra uygulamanızın ihtiyaç duyduğu kanonik olaylara son noktanızı abone edin.
Bir konektör modeli. Beş temiz ilkel.
Bir bağlantıda belirli bir platforma özel yaşamlar. OpsIQ çekirdeği genel olarak kalır, AI öngörülebilir kalır ve entegrasyonunuz denetimlenebilir kalır.
OpsIQ ne oldu.
Emit canonical events platformunuzdan veya yönetilen bir özel olay tanımlamak. Aboneler etkinlik kayıt dışı öncelik ve teslimat kuralları aracılığıyla alır.
Event referansinvoice.paid, ticket.created, subscription.cancelled, customer.signed_up veya kendi.
Fan-out aboneleriAI beyni, otomasyon kuralları, ayna konektörleri ve webhook uç noktalarınız tüm tepki verir.
Öncekilik düzeniDeterministic, bu kadar aynalar uyarıları ateşten önce yazmaktadır.
OpsIQ AI'nın ne yapmasına izin verildiğine söyle.
Her isim işlemi bir sözleşme alır: kapsamı, özellik, okumak veya yazmak, risk, onay politikası, istek ve cevap şeması, kuru temizleme desteği, idempotency ve stabil hatalar.
Action şema{
"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"] }
}
Taklitlerinize - kriptografik kanıt ile olayları.
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
Doğrudan HTTP kullanın veya tercih ettiğiniz müşteriyi üretir.
Bütün GeneralAPI OpenAPI olarak yayınlandı 3.0.3 Postman. PHP referans gönderenler artı Node ve Python entegrasyon müşterileri, imzalanmış olay ve webhook akışları kapsayabilir; herhangi bir yığın aynı şeyi çağırabilir JSON Doğrudan hareket yüzeyi.
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.",
},
)
Bir kez inşa edin. bir şeye tak.
Bir bağlantı, kimlik, Auth, Test, Actions, Tetikler ve İnceleme aracılığıyla üretilen veya ithal edilen bir pakettir. Açıklaması, yüzeylerin OpsIQ 'ın ortaya çıkmasına izin verilir.
Altı aşamalı Builder açınİngilizce konuşuyor. Denetimli işlemler dışarı çıktı.
OpsIQ asla doğru çağrı icat etmez. Kayıtlı sözleşmeler aracılığıyla yürür, ödeme yükü hazırlar ve eylem gerektirdiğinde onay isteyin ve yürütdüğünde tam bir denetim sırasını üretir, bu yüzden bir AI bunu gerçekleştirebilir. hareket eylemi Hiçbir zaman güvenemeyeceğiniz bir AI olmaz.
API yüzey Bir bakışta.
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.writeKuru_run + idempotencyConfigured / saatACTION security.reportsecurity.writeKuru_run + idempotencyConfigured / saatACTION platform.routes.writeadminOnay + anahtarConfigured / saatACTION meta.actionsKamu keşfiSadece okuyunConfigured / saatACTION tickets.listtickets.readSadece okuyunConfigured / saatACTION connectors.listconnectors.readSadece okuyunConfigured / saathr.* sözleşmeler · hr.read / hr.write kapsamıACTION hr.people.listhr.readSadece okuyunConfigured / saatACTION hr.people.createhr.writeKuru_run + idempotencyConfigured / saatACTION hr.org.treehr.readSadece okuyunConfigured / saathr Bir reddedilme alır, boş bir liste değil. İnsanlarOS HR Nedir.Puan sınırları bir saat pencerede anahtar olarak yapılandırılır. Cevaplar ortaya çıkıyor X-RateLimit-Limit, X-RateLimit-Remaining ve X-RateLimit-Reset• reddedilen bir istek geri dönüşleri 429 with Retry-After. Use the OpenAPI 3.0.3 sözleşme veya Postman koleksiyon Aynı runtime kayıtlarından üretilmiştir.
Build, test ve salıverme Altı aşama.
Bir yönetilen profilden başlayın veya sözleşmeyi kendiniz tanımlayın. The Builder her aşaması kendi kendine özgü bir bağlantı paketi oluşturmadan önce doğrulamaktadır.
Güvenli bir şekilde, sonra serbest bırakılması kapısını geç.
Kullan dry_run Desteklenen yazı eylemleri üzerinde, Builder'ın bağlı bağlantı testini çalıştırın ve serbest bırakmadan önce üretilen açık ve sözleşmeyi inceler. Paket geçerlilik kontrolleri yetenek isimleri, ayarları, kanıtlanmış ve gerekli dosyaları; arka plan işçileri reaktif kirletici anket ve teslimiyetle idare eder.
Bir paket bir yetenek iddia edemez Onun koduna sahip değildir.
OpsIQ\Connectors\ConnectorContract Görevdir. Runtime keşif, Builder, ilk parti paketleri, uygunluk, General API Ve her referans, bir kayıt.Bir yetenek ve üç dosyanın daha önce birbirleriyle aynı fikirde olması gerektiğini okudu OpsIQ Size tek bir satır yollar.
- 01 connector.php runtime class
- 02 IdentityProvider.php istikrarlı dış anahtar anahtarı
- 03 SalesIngest.php uzlaşılmaz
- 04 actions.json İsimli operasyonlar
- 05 settings.json operatör yapılandırma
- 06 connector_contract.json Makine hazır yetkiye sahip
hmac-sha256 per-file SHA-256 'ın bir deterministic ödeme yükü üzerinde cevap verir Bu, imzalandığında değiştirildi. An ed25519 İmza cevaplar Nabtech tarafından imzalanmıştıAncak, paketlenen kamu anahtarı ile kontrol edilebilir ve paylaşılmaz. Biri Hazırlayın ve ilk duraklamayı durdurun.
marketplace.json Açıklama ile imza dışında: installer imza aldıktan sonra yazar, bu yüzden yayıncı bunu asla imzalamadı.
Hiç başarısız olmamış bir muhafız Unproven.
Yeşil testler bugün hiçbir şey kırılmamıştır. Size yazdığınız muhafızın durdurmak için yazılmış olduğunu söylemiyorlar, çünkü asla egzersiz yapan bir gardiyan tam olarak hiçbir şey yapmamak gibi geçmiyor ve çığlıkları izlemek talep ediyoruz.
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.
mutasyon asla uygulanmadı.
Arama metni maç yapmadı, dosyaya alındı, süit geçti ve kaydedilen kanıt kaydedildi. Eski kod altında yeşil Asla eski olmayan kod hakkında. Tam bir metinsel maç gerektiren ve dosyanın iki tarafını karşılaştırmak için yalvarın.
mutasyon başka bir şey kırdı.
Oda kırmızıya gitti çünkü dosya parsing veya bottrap öldü ve kanıt, muhafızla hiçbir ilgisi olmayan bir kırmızı kaydetti. mutantı linting the mutant and requireing the sentences named Başarısızlıklar arasında test.
Disk üzerinde bir mutant bırakamaz.
Her mutasyon orijinali web tabanlı bir ağacın dışında bir yankara kopyalar, olağanüstü değişikliği isimlendiren bir işaret yazar ve her çıkış yolundaki bir kapanış eller tarafından geri alınır. Bir kazara koşudan gelen bir işaret bu dosyanın sonraki mutasyonundan önce onurlandırılır.
Sertifika bir komut Bir çıkış kodu ile.
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/ Kapak ayarları, eylemler, Builder specs, seyahat ve ticaret olayı haritaları, iş tarifleri, bağlayıcı sözleşmeler ve yayınlar ortaya çıkıyor.
- manifests parse ve birbirleriyle aynı fikirde
- yetenekleri yetenekler Runtime class'da var
- interfaces nereye ilan edildiğine dair yemin etti
- files Her gerekli dosya mevcut
- eylemler Eylemler açıkla
- destructive Açıklamalar
- kimlik istikrarlı bir dış anahtar, e-posta değil
- yeniden tekrar Tekrarlanan bir güncelleme, asla tekrarlar
- - Enterprise. Açıklamalar genişleme ile eşleştirir
- Docs DME, DEVELOPER, CHANGELOG
- şemalar Her JSON doğruları doğruluyor
$ 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
İlki gerçek üretim hesabında gerçek olmayan bir hesapta bulun --live-settings=/secure/test-acme.json. Hala iterating olsanız da, son olanı takas edin --unsigned-ok: Bu, beklenen bir uyarı olarak eksik bir imzaya sahiptir, çünkü iyi olduğu gibi.
Ne satabileceğinizi kınamak Bir dosya, bir kayıt değil.
Hangi satabileceğini ilan edebilecek bir bağlantı its own Operasyonlar OpsIQ'in canonical ticaret rollerini cevaplıyor. Dosyanın varlığı iddia ediyor. Şu anda satış ayarlarında görünüyor ve duraklandığında yok oluyor. katılmak için hiçbir liste yok ve kimse sormaz.
Bir kanonik Yazı yazmak için yaz İş sıralaması, platformun fiyatlarını doğrudan atlar ve bildirim postasını tasarlayın ve tüccarın kendi sistemini sadece yarısına inandığı bir sipariş verin. recovery Ya da, bir süre kurtarılamazdı.
{
"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 Oluşturulur ve onun şema setleri additionalProperties:falseAncak bir el yazarlı blok geçerli olmazdı ve sonra sonraki jeneratörde yazılabilir.
Bir rolde değil CommerceRole Yok. OpsIQ asla bir operasyon adından birini yapmaz, çünkü bir isim söz konusu değildir.
Operasyon sizin üzerinizde görünmelidir actions.jsonMevcut olmayan bir kişi, o zaman hiçbir şey üretmediği bir müşteriye söz etmez.
En tehlikeli zamanout, platformdan sonra zaten işi yapmış olabilir. idempotent "benim yazma arazim" göz önüne alındığında, tek seçenek yeniden deneme körü veya siparişi kaybeder.
Herhangi bir ödeme sınıfı rolü de aynı zamanda ilan payment_profile ile birlikte environment, webhook_verify Sağlayıcının kendi planını kullanarak ve event_map. Devletsiz bir ortam, test-mode sağlayıcısının canlı bir ödeme yapması nasıldır.
OpsIQ a karşı DIY entegrasyonu.
Bir sözleşmeye sahip olan ne, imzalanmış, denetimli platform size kendi webhooks ve AI-action tesisatınızı asla taşımadığını verir.
| Yetenekli | Kendin kendi kendine yuvarlayın | OpsIQ |
|---|---|---|
| Kapsamd Bearer API + HMAC-signed webhooks | El-rolled | ✓ |
| Kuru-run + 24-hour Başarılı Replay | DIY | ✓ |
| 1m→5m→30m→ 2h → 12hYeniden tekrarlamalar | DIY kuyrukları | ✓ |
| Action-job records (AI aramaları icat edemez) | — | ✓ |
| Yan etkilerden önce politikayı onaylayın | — | ✓ |
| Stable error zarf + istek IDs | Manual log | ✓ |
| Doğrudan HTTP + oluşturulan müşteri seçenekleri | Kendin Yaz | ✓ |
| OpenAPI 3.0.3 makine hazırlanabilir sözleşme | Maybe | ✓ |
| Six- stage Builder + paket salım kapısı | Bir aletchain inşa edin | ✓ |
| Workspace-pined anahtarları ve saat sınırları | Varies Var | ✓ |
| Links: platform kodu izole kalır | — | ✓ |
Geliştirici soruları, Cevap verdi.
Kimlik, sözleşmeler, yeniden kayıtlar, müşteri nesli, güvenli test ve bağlantı modeli, ilk üretim talebinden önce.
Authorization: Bearer opq_…Anahtarlar, yalnızca sınırlı veya okunabilir, en az kardigi kapsamı taşıyabilir ve bir saat sınırına itaat edebilir ve iş alanına onaylanabilir. Webhook imzası ayrı: dolma teslimatları tamamlandı X-OpsIQ-Signature, X-OpsIQ-Timestamp, X-OpsIQ-Event ve X-OpsIQ-Delivery.hash_hmac('sha256', $rawBody, $secret) Ve hexadecimal sindirini onunla karşılaştır X-OpsIQ-Signature using hash_equals. Validate X-OpsIQ-Timestamp Yeniden oyun penceresinizde ve kullanımınızda X-OpsIQ-Delivery İzlenebilir teslimat tanımlayıcısı olarak.dry_run Oluşturulan sözleşme onu destekleyen eylemlerde, Tools Builder'ın bağlı bağlantı testini çalıştırın, üretilen dosyaları kontrol edin ve bağlayıcıyı hazır olarak tedavi etmeden önce paketi uygun hale getirin.settings.json, Seçmeli actions.json, üretilen bir yetenek sözleşmesi, belge ve opsiyonel işletme uzantıları. altı aşamalı Builder onu birleştirir; kayıt keşfeder; uygunluk ve serbest bırakma kapıları bunu doğrular.