Platform pengembang

Buat platform Anda Bisa dioperasi.

OpsIQmengekspos REST yang bersihAPI, HMAC-signed webhooks, sebuah aksional-kontrak registry dan suidy- to-ship SDKs. Tentukan apa yang terjadi api dari sistem Anda, apa tindakan AI diperbolehkan untuk dijalankan, dan apa data aman untuk dibaca.OpsIQmenangani tanda tangan, pengulangan, catatan audit dan konfirmasi mengalir untuk Anda.

HMAC-SHA256 kedua caraPHPKontrak OpenAPI 3.0.3100% cakupan audit
Permintaan yang ditandatangani dalam
Ditandatangani webhook keluar Abod200 OK
Tingkat curl OpsIQ ditandatangani webhook POST /v1/actions/run X- OpsIQ- Tanda tangan { "action": "Kembalikan faktur-mu", "dikonfirmasi": benar] PERUSAHAAN tanda tangan leva peran + scope ghanbe baris audit ditulis @opsiq/sdkwidget pada ("action. executed") verifikasi HMAC 1f handle 200 OK
3PHP, Node, Python
HMACSHA- 256 ditandatangani pada setiap permintaan
40+Peristiwa universal untuk berlangganan
100%Audit-log cakupan pada aksi
The lifecycle quest

Permintaan masuk Signed webhook keluar.

Anda POST keOpsIQ APIdengan kunci pembina scoped Anda.OpsIQmemeriksa scope dan peran, menjalankan aksi dikontrak, menulis baris audit - kemudian kebakaran sebuah HMAC ditandatangani webhook kembali ke titik akhir Anda. Setiap hop dikonfirmasi, idempoten dan mencoba kembali pada kegagalan.

HMAC- SHA256 webhooks - inbound dan outbound payload webhook ditandatangani di atas tubuh mentah; API panggilan otentikasi dengan kunci scoped Banner.
Uji otomatis - Gagal pengiriman kembali dan coba lagi, dengan ID pengiriman Anda dapat melacak.
Tombol pendempotensi - Diputar ulang dengan desain, jadi pengiriman ulang tidak pernah dua kali lipat.
Aplikasi Anda POST /v1/actions/run X- OpsIQ- Tanda tangan X- OpsIQ- Timecaps VERIFY - RUN - AUDITING Titik akhir Anda POST /webhooks verifikasi HMAC 200 OK tanda tangan diverifikasi scope + role diperiksa dijalankan aksi terkontraksi baris audit ditulis DISIGNED WEBHOOK PAYLOAD { "Event""Action. executed", _ ID pengiriman"dlv _ 8f2a9", "idempotensi _ kunci""idem _ 31c7", "Tandatangan": "sha256 =Baja California" } dikirim
01 permintaan ditandatangani 02 verifikasi HMAC 03 jalankan kontrak 04 tulis baris audit 05 webhook tertanda
Pemula Cepat

Dari nol untuk integrasi hidup dalam empat langkah.

Hasilkan sebuah kunci, kebakaran acara pertama Anda, berlangganan webhook, register sebuah aksi. Anda dapat menjalankan seluruh loop terhadap sandbox sebelum menyentuh data produksi.

Konsol SandboxTerhubung
PERANGKAT PERANGKAAN 1 opq _ live _ xxx 2 POST /v1/events/fire "order. shired" 3Berlangganan sebuah webhook PHIhttps://api.you.com/webhooks 4Mendaftar sebuah aksi saas. return _ faktur
ProplorSandbox produksi, kode yang sama
01

Ambil kunci

Mendaftar dan menghasilkan Pemuat scopedAPIkunci (opq_…) dalam pengaturan pengembang, dan memberikan setiap integrasi hanya permukaan yang dibutuhkan.

02

& Berlangganan

POST sebuah signed events/fire (atau menggunakanSDK), kemudian titik apapunURLpada setiap acara, ditandatangani, dengan ID pengiriman dan back- off mengulang.

03

Mendaftar suatu aksi

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

Bagaimana cocok bersama-sama

Satu pola konektor. Lima primitif bersih.

Apa pun platform-spesifik tinggal di konektor.OpsIQinti tetap umum, AI tetap dapat diprediksi, dan integrasi Anda tetap audable.

01
Pemicu

Katakan OpsIQ apa yang baru saja terjadi.

Tembakkan peristiwa universal dari platform Anda - atau nama acara suai Anda sendiri. Setiap pelanggan bereaksi secara langsung, dalam urutan prioritas.

Referensi acara
invoice.paid events. fire () Otak AIkonteks hidup aturanprioritas 20 cermintulis dulu webhookditandatangani
Peristiwa gubahan Universal +invoice.paid, ticket.created, subscription.cancelled, customer.signed_up atau Anda sendiri. Para pelangganOtak AI, aturan otomatisasi, konektor cermin dan titik akhir webhook Anda semua bereaksi. Urutan prioritasDeterministik pengiriman sehingga cermin menulis sebelum waspada api.
02/ Aksi kontrak

KatakanOpsIQApa Al diperbolehkan untuk dilakukan.

Sebuah kontrak aksi adalah sebuah JSON deklarasi: apa yang dilakukan aksi, peran yang dapat menjalankannya, parameter apa yang diterima, apakah konfirmasi diperlukan, dan titik akhir untuk memanggil.

Skema aksi
AI tidak dapat menciptakan aksiIni hanya bisa meminta untuk menjalankan yang Anda telah terdaftar. Kebijakan konfirmasiTindakan beresiko memicu kartu pratilik sebelum efek samping. Role + rating permukaanSetiap aksi menyatakan peran dan permukaan diperbolehkan 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/ Pengait web yang ditandatangani

Dorong peristiwa ke tumpukan Anda - dengan bukti kriptografi.

BerlanggananURLuntuk acara apapun.OpsIQPOSTSJSONMuatan ditandatangani dengan HMAC-SHA256 di atas tubuh mentah - verifikasi dalam beberapa baris.

Perlindungan ReplayID pengiriman yang dapat dilacakMundur-off ulangi
Referensi Webhook
verifikasi 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);
04/ SDK

Menjatuhkan klien untuk bahasa yang sudah kau gunakan.

Tiga SDK resmi menangani otentikasi, penandatanganan, coba ulang, kunci idempotensi dan tanggapan diketik. Atau tetap framework- bebas - setiapSDKadalah pembungkus tipis sekitar permukaan REST yang sama.

contoh klien
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 8.4 +Node. js 18 +Python3.10+REST3.0.3
05 / Pola konektor

Membangun sekali.

Konektor adalah folder dengan satu kelas PHP.OpsIQMenemukannya, registri menghubungkan peristiwa, dan platform-spesifik kode Anda tetap terpisah dari inti.

Panduan konektor
Lima kaitidentityProviders(), contextProviders(), registerActions(), subscribers(), handleWebhook(). Terkait muatanactions.json dan settings.json Menyatakan kontrak dan kepercayaan. Otomatis ditemukanJatuhkan folder, tanda tangani, aktifkan dalam admin.
Dari niat untuk tindakan aman

Bahasa Inggris biasa masuk Operasi Audited keluar.

OpsIQtidak pernah menciptakan panggilan yang tepat. ia berjalan melalui kontrak yang terdaftar, menyiapkan muatannya, meminta konfirmasi ketika aksi membutuhkannya, dan menghasilkan sebuah baris audit lengkap ketika mengeksekusi, sehingga AI yang dapat tindakan tidak pernah menjadi AI Anda tidak bisa percaya.

Kontrak. AI hanya mengusulkan tindakan yang telah terdaftar.
Konfirmasi sebelum efek samping. Tindakan beresiko permukaan kartu pratilik pertama.
Sangat ingat. Setiap prompt, respons dan action hasil ditangkap dalam AI History.
4 langkahAct ovaaudit
HMACsigned sebelum eksekusi
"Kembalikan faktur terakhir Adam" Langkah 1 resolusi Igsung cocok: saas. return _ faktur permukaan: peran: pemilik2validasi Langkah 3 kartu pratilik # 8421 Konfirmasi Langkah4baris audit aktor412ms Pemilik - saja yang dapat diekspor sebagaiCSV
Tidak ada panggilan yang ditemukanhanya kontrak registry
Konfirmasi-gatedpratinjau sebelum efek samping
100% diauditprompt + response + hasil
Referensi

API permukaan sekilas.

Setiap titik akhir inti, idempotensi, dan batas nilai per- kunci. Kontrak mesin yang dibaca penuh hidup dalam referensi OpenAPI 3.0.3.

Referensi OpenAPI 3.0.3
Titik AkhirAutentikasiIdempocentBatas rate
TulisPermukaan efek samping yang ditandatangani
POST /v1/events/fireHMACYaWHMCS
POST /v1/actions/runHMACYa200 / menit
POST /v1/webhooks/testHMACYa60 / menit
BacaKonteks, tiket dan inventaris konektor
GET /v1/customers/{id}HMACYaBomet
GET /v1/ticketsHMACYaBomet
GET /v1/connectorsHMACYaBomet

Batas rate per kunci dan dikembalikan pada setiap respon sebagai X-OpsIQ-RateLimit-Remaining(Dan melampaui batas) karena mereka dalam hal tersebut tiada lain daripada mereka yang lebih utama dari mereka. 429 dengan Retry-After tajuk. Kontrak yang mudah dibaca (setiap titik akhir, skema, dan galat) tinggal di Referensi OpenAPI 3.0.3.

Buat konektor

Kirimkan konektor ke dalam lima langkah.

Sebuah konektor adalah folder yang sendiri-berisi.OpsIQMenemukan itu, registry kabel peristiwa, dan platform Anda - spesifik kode tidak pernah bocor ke dalam inti.

1Scaffold folder dengan connector.php memperluas AbstractConnector.
2Deklarasi actions.json dan settings.json manifest.
3Implement identitas, konteks dan penyedia webhook.
4Berlangganan ke acara-acara yang Anda pedulikan.
5Tanda tangani, jatuhkan, aktifkan di admin.
Uji sebelum Anda kapal

Kunci kotak pasir dan penguji webhook.

Setiap area kerja mengekspos kotak pasir: kunci yang discoped terpisah yang hits samaAPIpermukaan tanpa menyentuh data produksi. POST /v1/webhooks/test untuk menembakkan pengiriman sampel yang ditandatangani di titik akhir dan mengkonfirmasi verifikasi tanda tangan Anda sebelum siaran langsung. Self-hosted installs menjalankan jalur kode identik, tanpa disorot perilaku antara awan dan on- Prem.

Kunci Sandbox Penguji Webhook Tugas yang didorong Cron- Awan & diri-diselenggarakan parity
konektor. php
kelas Aksektor meluas AbstractConnector { fungsi publik kunci (): WordPress REST { kembali 'Acme'; } / / Selesaikan siapa aktor ini fungsi publik Penjual identitas (): array { kembali [baru AcmeIdentityProvider()]; } / / Data langsung feed kedalam prompt AI fungsi publik contextprovider (): array { kembali [baru AcmeContextProvider()]; } / / Bereaksi keOpsIQkejadian fungsi publik pelanggan (): array { kembali ['TlRlCE. paid' => [baru BillingMirror()]]; } / / Menerima inbound webhooks dari Acme fungsi publik handleWebhook (array $body): kosong { /* … */ } }
Bagaimana itu dibandingkan

OpsIQ vs a Integrasi DIY.

Apa kontrak-terikat, ditandatangani, diaudit platform memberi Anda bahwa bergulir sendiri webhook Anda dan pipa-tindakan AI- tidak akan pernah.

KapasyabilityGulung sendiriOpsIQ
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) Variunit-format
Connector pattern: platform code stays isolated
PSD

Pertanyaan pengembang, Jawab.

Auth, tanda tangan, SDK, sandboxing dan model konektor: semua yang akan anda minta sebelum permintaan pertama.

API memanggil otentikasi dengan kunci Pembawa Pesan tunggal: kirim Authorization: Bearer opq_…. OpsIQmemeriksa scope kunci dan peran aktor sebelum apapun berjalan. Pengait web terpisah: setiap webhookOpsIQMengirimkan sebuah X-OpsIQ-Signature (hex HMAC-SHA256 dari tubuh mentah) dan X-OpsIQ-Timestamp untuk kembali perlindungan, sehingga Anda dapat memverifikasi kami sebagai imbalan, dan inbound webdocks Anda kirim diverifikasi dengan cara yang sama.
Tidak. AI hanya dapat mengusulkan aksi yang ada dalam daftar kontrak aksimu. Ini tidak dapat membuat panggilan. Setiap kontrak mendeklarasikan permukaan, peran dan parameter yang diijinkan, dan aksi apapun yang ditandai requires_confirmation muncul kartu pratilik ke manusia sebelum efek samping berjalan.
Rekomendasi hash_hmac('sha256', $rawBody, $secret) (hex dicerna tanpa awalan) dan membandingkannya dengan X-OpsIQ-Signature tajuk dengan pemeriksaan waktu constant (hash_equals). Setiap pengiriman juga membawa sebuah penanda waktu, sebuah kunci idempotensi dan ID pengiriman yang dapat anda lacak. snippet PHP pada halaman ini adalah seluruh verifikasi.
DR68
SDK Resmi untuk PHP8.4+, Node.js18+ dan Python3.10+ tangani penandatanganan, retries, kunci idempotency, dan respon yang diketik. Mereka adalah pembungkus tipis di sekeliling permukaan REST, sehingga Anda juga dapat menghasilkan klien Anda sendiri dari OpenAPI yang diterbitkan3.0.3kontrak atau panggilanAPIsecara langsung.
Ya, setiap area kerja mengekspos kotak pasir dengan kunci scoped yang sama.APIpermukaan tanpa menyentuh data produksi, ditambah POST /v1/webhooks/test Untuk menembakkan sampel yang ditandatangani pada titik akhir dan mengkonfirmasi verifikasi Anda sebelum pergi hidup.
Ya, Self-hosted memasang kode path identik (sama dengan penandatanganan, registri konektor yang sama, kontrak OpenAPI yang sama) jadi tidak ada penyimpangan perilaku antara awan dan satu-prem.
Konektor adalah folder yang berisi sendiri dengan satu kelas PHP memperluas AbstractConnector, ditambah actions.json dan settings.json manifestasi. Anda mengimplementasikan identityProviders(), contextProviders(), registerActions(), subscribers() dan handleWebhook(). OpsIQauto- menemukan itu, kabel peristiwa dan menjaga platform-spesifik kode Anda secara bersih dipisahkan dari inti.