Platform pengembang · REST · webhooks · SDK

Kau harus membuat panggungmu Boleh dioperasikan AI.

OpsIQ mengekspos REST bersih API_, webhooks bertanda-HMAC, registry contract aksi-contract dan SDK siap-ke-kapal. Tentukan apa peristiwa api dari sistem anda, tindakan apa yang AI diperbolehkan untuk dijalankan, dan data apa yang aman untuk dibaca. OpsIQ menangani tanda tangan, retriy, log audit dan konfirmasi mengalir untuk anda.

HANC-SHA256 kedua arahPHP · Node · SDK PythonKemuaaaaAPI Buka 3.0.3 kontrakCakupan audit 100%_
Permintaan ditandatangani oleh signed dalam
Keheroned webhook out → 200_ OK
KANTOR → OpsIQ__ → webhook yang ditandatangani POST /v1/actions/run ♪ X- ♪OpsIQ-Signature { "action": refund_invoice", "confirmed": true } KETIGA tandatangan ✓ peranan + skop ✓ baris audit ditulis @opsiq/sdkWidget on ("action. executed") Verify HMAC → handle 200♪ OK ♪
3SDK resmi FOG: PHP, Node, Python
OOB HMACSHA-256__ ditandatangani pada setiap permintaan
40+Peristiwa universal limod to langgan
100%liputan audit-log tentang tindakan
\"Tur-air\"

Permintaan masuk - Ditandatangani webhook keluar.

Anda ZOST ke OpsIQ_API dengan kunci Bearer terskop anda. OpsIQ cek skop dan peran, menjalankan aksi berkontrak, menulis baris audit - kemudian kebakaran webhook HMAC-signed kembali ke titik akhir anda. Setiap hop diauthentikasi, diimplementasi dan dicoba pada kegagalan.

¡HMAC-SHA256 webhooks - muatan webhook masuk dan outbound webhook ditandatangani di atas badan mentah; APIpanggilan otentifikasi dengan kunci Bearer terskop.
Coba lagi otomatis Automatik - Pengiriman gagal dibatalkan dan coba lagi, dengan ID pengiriman yang bisa kau lacak.
Kunci anjlok - Replay-safe dengan desain, jadi pengiriman yang dicoba ulang tidak pernah dua kali.
Aplikasi Anda POST /v1/actions/run ♪ X- ♪OpsIQ-Signature ♪ X- ♪OpsIQMasa - Masa SAHKAN - JALANKAN - AUDIT Titik akhirmu POST /webhooks sahkan HMAC 200♪ OK ♪ Tanda tangan tidak disahkan skop + peranan ditanda Tindakan dikontrak dijangi oleh aksi dijalankan baris audit ditulis DICERSIKAN KOSONG PAYLOAD { event: "action. executed", delivery_id: "dlv_8f2a9", idempotency_key: "idem_31c7", "tandatangan": "sha256=9c4e0a7b..." } Diantarkan
01 Permintaan ditandatangani oleh XCF 02 sahkan HMAC 03 jalankan kontrak 04 tulis baris audit 05 Xok web yang ditandatangani oleh XCF
Muckstart

Dari nol ke integrasi langsung di 4 langkah.

Anda dapat menjalankan seluruh loop terhadap kotak pasir sebelum menyentuh data produksi.

Konsol Kotak PasirTerhubung
KONSOLE DEVELOPER · kotak pasir Memerlukan kunci 1· Hasilkan · satu kunci Bearer terskop 2· · Api peristiwa POST /v1/events/fire "order. shipped" 3· Langgan webhook → https://api.you.com/webhooks 4· Daftar tindakan · diaudit
AdonanHiftendodox Sandbox → produksi, kode yang sama
01

Cari kunci

Janda tangan dan hasilkan kunci API Bearer terskop (_PH_0__)opq_…) dalam pengaturan pengembang, dan memberikan setiap integrasi hanya permukaan yang dibutuhkan.

02

Langganan & Fire frekuensi

OST signed a signed events/fire ¡atau gunakan SDK_), kemudian tunjuk setiap URL pada acara apapun, ditandatangani, dengan ID pengiriman dan retries back-off.

03

Daftarkan sebuah tindakan

Membuktikan kontrak aksi yang ditandatangani agar AI dapat dengan aman menjalankan operasi, dengan pemeriksaan peran, kebijakan konfirmasi dan jejak audit penuh.

Bagaimana bisa cocok bersama-sama

Satu pola konektor. Lima primitif bersih.

Apa pun yang spesifik platform hidup di konektor. inti OpsIQ_ tetap generik, AI tetap dapat diprediksi, dan integrasi Anda tetap dapat diaudit.

01
Pencetus

TellVedOpsIQApa yang baru saja terjadi.

Setiap pelanggan bereaksi secara real time, dalam urutan prioritas.

Rujukan peristiwa
invoice.paid peristiwa. fire() Otak AIKonteks langsung quot; Aturan-aturan di AmerikaKeutamaan 20_ Cermin ismorganio write first webhookDitandatangani oleh Sony
Umumumumon + acara suaiinvoice.paid, ticket.created, subscription.cancelled, customer.signed_up Kau sendiri atau kau. pelanggan luar-anOtak AI, aturan otomatisasi, penyambung cermin dan titik akhir webhook Anda semua bereaksi. Urutan Keutamaan Keprioritasan UGPemutusan deterministik , jadi cermin menulis sebelum peringatan kebakaran.
02Kontrak / Aksi

Beritahu OpsIQapa yang AI diperbolehkan lakukan.

Kontrak aksi adalah sebuah deklarasi JSON_ yang ditandatangani: apa yang dilakukan oleh tindakan, peran mana yang dapat menjalankannya, parameter apa yang diterimanya, apakah konfirmasi diperlukan, dan titik akhir untuk memanggil.

Skema aksi
AI tidak dapat menemukan tindakanIni hanya bisa meminta untuk menjalankan yang Anda telah terdaftar. Kebijakan pengesahan untuk CovidenceTindakan berisiko memicu kartu pratinjau sebelum efek samping apapun. Peranan + penggetah permukaanSetiap aksi menyatakan peran dan permukaan diizinkan untuk menjalankannya.
Kontrak aksi---JSON
{
  "key": "saas.refund_invoice",
  "label": "Refund a paid invoice",
  "surface": ["admin"],
  "roles": ["owner", "billing_admin"],
  "requires_confirmation": true,
  "params": {
    "invoice_id": { "type": "int", "required": true },
    "reason": { "type": "string", "max": 500 }
  },
  "endpoint": "https://api.you.com/refund",
  "audit": true
}
03/ Jarum web bertandatangan

- Dengan bukti kriptografi.

Langgan semua URL_____ ke acara apapun. OpsIQ__POSTs JSONload yang ditandatangani dengan HMAC-SHA256 di atas tubuh mentah - verifikasi dalam beberapa baris.

Perlindungan ReplayID pengiriman dapat dilacakCoba lagi back-off
Referensi webfinghook
saringan webhook - php
$raw = file_get_contents('php://input');
$sig = $_SERVER['HTTP_X_OPSIQ_SIGNATURE'] ?? '';
$expected = hash_hmac('sha256', $raw, $secret); // hex digest, no prefix
if (!hash_equals($expected, $sig)) http_response_code(401);
$event = json_decode($raw, true);
046 / SDK

Klien yang sudah kau gunakan.

3 SDK resmi menangani otentikasi, tandatangan, retries, kunci idempotensi dan respon tipe. atau tetap bebas kerangka kerja - setiap SDK adalah pembungkus tipis di sekitar permukaan REST yang sama.

Contoh klien pada tahun 2008
import { OpsIQ } from "@opsiq/sdk";
const ops = new OpsIQ({ apiKey: process.env.OPSIQ_KEY });

await ops.events.fire("order.shipped", {
  customer_id: 421,
  order_ref: "NB-9182",
  carrier: "DHL"
});

const result = await ops.actions.run("saas.send_kb_link", {
  ticket_id: 5519,
  article: "how-to-reset-password"
});
use OpsIQ\Client;

$ops = new Client([
  'api_key' => getenv('OPSIQ_KEY'),
]);

$ops->events->fire('order.shipped', [
  'customer_id' => 421,
  'order_ref' => 'NB-9182',
]);

$result = $ops->actions->run('saas.send_kb_link', [
  'ticket_id' => 5519,
  'article' => 'how-to-reset-password',
]);
from opsiq import OpsIQ

ops = OpsIQ(
    api_key=os.environ["OPSIQ_KEY"],
)

ops.events.fire("order.shipped", {
    "customer_id": 421,
    "order_ref": "NB-9182",
})

result = ops.actions.run("saas.send_kb_link", {
    "ticket_id": 5519,
    "article": "how-to-reset-password",
})
PHP PempHP 8.4+Node. js 18+Ke_utamaan Python 3.10+· Buka 3.0.3_
05/ Pola penghubung

Membina sekali.

Sebuah konektor ode adalah folder dengan satu kelas PHP. OpsIQ__menemukan itu, registry kabel acara, dan kode spesifik platform Anda tetap terpisah bersih dari inti.

Panduan penghubung dari UVN
Lima hooksidentityProviders(), contextProviders(), registerActions(), subscribers(), handleWebhook(). Didorong oleh Manifestisactions.json BAHWA DAN settings.json \"Nisho menyatakan kontrak dan konfigurasi.\" Ditemukan-sendiriJatuhkan foldernya, tanda tangani, aktifkan di admin.
Dari niat untuk tindakan aman

Bahasa Inggris masuk. Operasi Audited keluar.

OpsIQ_____ tidak pernah menemukan panggilan yang benar. Ia berjalan melalui kontrak terdaftar, mempersiapkan muatan, meminta konfirmasi ketika tindakan memerlukannya, dan menghasilkan baris audit lengkap ketika itu dijalankan, jadi AI yang dapat tindakan Kau tak bisa percaya pada AI.

Kontrak yang terikat. AI hanya mengusulkan tindakan Anda telah terdaftar.
Konfirmasi sebelum efek samping. Tindakan yang berisiko muncul di kartu pratinjau pertama.
Ingatan yang sangat banyak. Setiap prompt, respon dan tindakan hasil yang ditangkap dalam AI History.
4Langkah-langkahNiat → audit
OOB HMACXerL ditandatangani sebelum dieksekusi
"pulangkan bil terakhir Adam" Langkah 1_· resolusi maksud → dicocokkan: saas. refund_invoice permukaan: admin · peran: pemilik · Step 2_ validate Langkah 3_· Konfirmasi tanda & Kartu pratinjau · invoice #8421 Konfirmasi Baris Audit Step 4 · Memerlukan Methodiry Aktor · · prompt · hasil · 412ms_ Hanya-pemilik-hanya-saja · dapat diekspor sebagai CSV_
Tidak ada panggilan palsupendaftar kontrak sahaja
Dikonfirmasi-dipastikanPreview sebelum efek samping
100%DiauditMakluman lema + respon + hasil
Rujukan

permukaan API_ Hanya sekilas.

Setiap titik akhir inti, auth, idspotency dan batas tingkat per-kunci. kontrak yang dapat dibaca mesin tinggal di dalam referensi OpenAPI 3.0.3.

KeuasanaaaAPI 3.0.3_butuh rujukan
Titik akhir UkurJohnTidak punya hakBatas kadar morf
WriterPermukaan efek samping yang ditandatangani oleh signed
POST /v1/events/fireOOB HMACYa1000 / min
POST /v1/actions/runOOB HMACYa200 / min
POST /v1/webhooks/testOOB HMACYa60 / min
BacalahKonteks, tiket dan inventaris penyambung
GET /v1/customers/{id}OOB HMACYa2000 / min
GET /v1/ticketsOOB HMACYa2000 / min
GET /v1/connectorsOOB HMACYa2000 / min

Batasan angka finifena adalah per kunci dan dikembalikan pada setiap respon sebagai X-OpsIQ-RateLimit-RemainingLUVIN; melebihi batas kembali 429 ♪ Dengan ♪ ♪ ♪ Retry-After header. kontrak yang dapat dibaca mesin penuh (setiap titik akhir, skema dan kesalahan) tinggal di KeuasanaaaAPI 3.0.3_butuh rujukan.

Bina penyambung

Hantarkan sambungan ke dalam Langkah ke lima.

Sebuah konektor adalah folder yang dimiliki sendiri. OpsIQ__menemukannya, registry kabel peristiwa, dan kode spesifik platform Anda tidak pernah bocor ke dalam inti.

1Scaffold sebuah folder dengan connector.php Melanjutkan AbstractConnector.
2♪ Declare ♪ actions.json BAHWA DAN settings.json Bukti.
3Implementasi identitas, konteks dan penyedia webhook.
4Langganan untuk acara yang Anda pedulikan.
5Tanda tangan, letakkan, aktifkan di admin.
Tes sebelum kau berlayar

Kunci kotak pasir dan penguji webhook.

Setiap area kerja . Mengekspos kotak pasir: kunci terskop terpisah yang mengenai API permukaan yang sama tanpa menyentuh data produksi. Gunakan POST /v1/webhooks/test Dan pastikan verifikasi tandatangan anda sebelum aktif. Pasang sendiri yang dihosted menjalankan jalur kode yang sama, tanpa penyimpangan perilaku antara awan dan on-prem.

Tombol kotak pasir Penguji webhook Pekerjaan yang dikendarai oleh Cron Awan & paritas yang diselimuti sendiri
konektor. php · php
kelas Konsumen Akme Arsenal AbstractConnector { Fungsi publik Kunci lau(): rentetan { Kembali \"Acme\"; } // Selesaikan siapa aktornya Fungsi publik IdentitiProviders(): array BAHASA YA { Kembali [BAHASA baru AcmeIdentityProvider()]; } Data langsung dari AI ke data // Suapan ke dalam promp AI Fungsi publik ContextProviders(): array BAHASA YA { Kembali [BAHASA baru AcmeContextProvider()]; } //Isi ke OpsIQiwa Fungsi publik Negous subscriber(): array BAHASA YA { Kembali [\"NOSTAK . bayar\" => [BAHASA baru BillingMirror()]]; } [C] // Menerima biduk web dari Acme Fungsi publik handelWebhook()array BAHASA YA $body): ORANG KATA { /* … */ } }
⚖️ Bagaimana ia dibandingkan

OpsIQ♪ vs a ♪ Integrasi DIY.

Apa kontrak-bound, ditandatangani, audit platform memberi Anda bahwa bergulir webhooks Anda sendiri dan AI-action pipa tidak akan pernah.

Kemampuan berbakatKau sendiri yang harus pergiOpsIQ
HMAC-signed requests & webhooks (both ways) Hand-rolled
Idempotency keys + replay protection DIY
Automatic back-off retries with delivery IDs DIY queue
Action-contract registry (AI can't invent calls)
Confirmation policy before side-effects
100% audit-log coverage on actions Manual logging
Official PHP / Node / Python SDKs Write your own
OpenAPI 3.0.3 machine-readable contract Maybe
Sandbox keys + webhook tester Build a staging rig
Cloud & self-hosted parity (same code path) Varian
Connector pattern: platform code stays isolated
Soalan Lazim

Pertanyaan pengembang, Dijawab oleh Meka.

Auth, tanda tangan, SDK, kotak pasir dan model konektor: segala sesuatu yang akan Anda tanyakan sebelum permintaan pertama.

APIGagal disahkan dengan kunci Bearer berskop tunggal: kirim Authorization: Bearer opq_…. OpsIQ_____ memeriksa skop kunci dan peran aktor sebelum apa pun berjalan. Webhooks terpisah: setiap webhook OpsIQmenyirim membawa X-OpsIQ-Signature (sebuah HMAC-SHA256 dari tubuh mentah) dan X-OpsIQ-Timestamp Untuk perlindungan replay, jadi kau bisa memastikan kami sebagai balasannya, dan bidik web yang kau kirim sudah diverifikasi dengan cara yang sama.
AI hanya bisa mengusulkan tindakan yang ada dalam registry contract aksi anda. tidak dapat membuat panggilan. setiap kontrak menyatakan permukaan, peran dan parameter diperbolehkan, dan setiap tindakan ditandai requires_confirmation Adonan muncul kartu pratinjau ke manusia sebelum efek samping berjalan.
Penghitungan Ulang hash_hmac('sha256', $rawBody, $secret) (gest hex tanpa awalan) dan bandingkan dengan X-OpsIQ-Signature header afigh dengan pemeriksaan konstan-waktu (hash_equalsSetiap pengiriman juga membawa timestamp, kunci idpotensi dan ID pengiriman yang dapat anda lacak. PHP snippet pada halaman ini adalah verifikasi keseluruhan.
Pengiriman yang tidak mengembalikan 200_dikembalikan dengan pengunduran eksponensial, masing-masing membawa kunci idpotensi yang sama sehingga pengiriman yang telah dicoba tidak pernah dilakukan dua kali ganda. Anda dapat melacak setiap percobaan oleh ID pengiriman dalam admin atau log anda.
Ke SDK Resmi bagi PHP 8.4+, Node. js 18+ dan Python 3.10+ menangani penandatanganan, retries, kunci iddempotency dan respon ketik. Mereka adalah pembungkus tipis di sekitar permukaan REST, sehingga Anda juga dapat menghasilkan klien sendiri dari kontrak OpenAPI 3.0.3 yang diterbitkan atau memanggil API secara langsung.
Setiap area kerja membongkar kotak pasir dengan kunci terskop sendiri yang mengenai API permukaan yang sama tanpa menyentuh data produksi, ditambah POST /v1/webhooks/test Cake untuk menembakkan pengiriman sampel yang ditandatangani di titik akhir Anda dan konfirmasi verifikasi Anda sebelum pergi secara langsung.
Ya. pemasangan-sendiri menjalankan jalur kode identik (tandatangan yang sama, registry konektor yang sama, kontrak OpenAPI yang sama) sehingga tidak ada penyimpangan perilaku antara cloud dan on-prem.
Konektor A adalah folder yang dimiliki sendiri dengan satu kelas PHP yang diperluas AbstractConnector, ditambah actions.json BAHWA DAN settings.json Kau menerapkannya. identityProviders(), contextProviders(), registerActions(), subscribers() BAHWA DAN handleWebhook(). OpsIQMenemukannya secara auto-penemuan itu, menghubungkan kejadian dan membuat kode spesifik platform Anda terpisah dengan jelas dari inti.