ایجاد پلت فرم خود AI-operable
Call 2,415 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.
درخواست محدود شده در امضا خارج شد.
یک اقدام برای /api/v1.php با یک کلید Bearer دامنه OpsIQ پین های محل کار، قرارداد عمل و مجوز را تأیید می کند، سپس آن را اجرا یا خشک می کند. رویدادهای canonical مشترک از طریق یک صف تحویل HMAC-s امضا شده با تلاش های قابل ردیابی و retries محدود می شود.
از کلید برای مدیریت یکپارچگی در سه قدم
یک کلید حداقل امتیاز را کشف کنید، قرارداد تولید شده را پیدا کنید، خشک کردن یک نوشتن، سپس اشتراک گذاری وب سایت وقتی که درخواست شما نیاز به تحویل رویداد پس زمینه دارد.
یک کلید را بردارید
ثبت نام کنید و یک Bearer دامنه ایجاد کنید API کلید (opq_…• در تنظیمات توسعه دهنده، و هر ادغام را فقط سطوح مورد نیاز خود را ارائه دهید.
کشف و اعتبار
خوانده شد meta.actions, meta.action و meta.scopesاستفاده dry_run اعتبار نامه قبل از اعدام
اجرای و مشترک
یک کلید idempotency را برای نوشتن اضافه کنید، سپس نقطه پایانی خود را به رویدادهای کانونی که برنامه شما نیاز دارد، مشترک کنید.
یک الگوی اتصال پنج اصل پاک
هر گونه زندگی خاص پلت فرم در یک کانکتور. OpsIQ هسته عمومی باقی می ماند، AI قابل پیش بینی باقی می ماند و ادغام شما قابل حسابرسی است.
توضیح دهید OpsIQ چه اتفاقی افتاد.
رویدادهای canonical را از پلت فرم خود حذف کنید یا یک رویداد سفارشی اداره شده را تعریف کنید.مثبت کنندگان این رویداد را از طریق اولویت ثبت شده و قوانین تحویل دریافت می کنند.
مرجع Eventinvoice.paid, ticket.created, subscription.cancelled, customer.signed_up یا خود شما.
مشترکین Fan-outمغز AI، قوانین اتوماسیون، کانکتورهای آینه و نقاط پایانی وب شما همگی واکنش نشان می دهند.
اولویت بندیارسال قطعی آینه ها قبل از آتش هشدار
توضیح دهید OpsIQ آنچه که AI مجاز به انجام آن است.
هر عملیات به نام یک قرارداد تولید شده را دریافت می کند: دامنه، ویژگی، خواندن یا نوشتن نوع، خطر، سیاست تأیید، طرح درخواست و پاسخ، پشتیبانی خشک، idempotency و خطاهای پایدار.
طرح Action{
"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"] }
}
• رویدادهای را به پشته خود فشار دهید – با اثبات رمزنگاری.
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
از HTTP مستقیم استفاده کنید یا مشتری را که ترجیح می دهید تولید کنید.
ژنرال کاملAPI منتشر شده به عنوان OpenAPI 3.0.3 و پستمن فرستنده های مرجع PHP به علاوه مشتریان ادغام Node و پایتون پوشش رویداد امضا شده و جریان وب را پوشش می دهند؛ هر پشته می تواند همان را فراخوانی کند. JSON سطح عمل به طور مستقیم
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.",
},
)
یک بار بسازید، به هر چیزی تبدیل شوید.
کانکتور یک بسته کنترل شده است که از طریق هویت، Auth، Test، Actions، محرک ها و Review تولید یا وارد می شود. OpsIQ اجازه داده می شود افشا کند.
باز کردن شش مرحله ای سازندهانگلیسی ساده عملیات حسابرسی شده
OpsIQ هرگز تماس درست را اختراع نکنید، از طریق قراردادهای ثبت شده پیاده روی می کند، محموله را آماده می کند، درخواست تایید زمانی که عمل نیاز به آن دارد، و یک ردیف حسابرسی کامل در هنگام اجرای آن ایجاد می کند، بنابراین AI که می تواند آن را اجرا کند. عمل هرگز به هوش مصنوعی تبدیل نمی شود که نمی توانید به آن اعتماد کنید.
سطح API در یک نگاه
One JSON POST surface exposes 2,415 named actions. Each generated contract declares auth scopes, read/write kind, risk, confirmation, request schema, dry-run, idempotency and stable errors.
ACTION tickets.replytickets.writeخشکی_run + idempotencyشکل گیری / ساعتACTION security.reportsecurity.writeخشکی_run + idempotencyشکل گیری / ساعتACTION platform.routes.writeمدیر اجراییتایید + keyشکل گیری / ساعتACTION meta.actionsکشف عمومیفقط بخوانیدشکل گیری / ساعتACTION tickets.listtickets.readفقط بخوانیدشکل گیری / ساعتACTION connectors.listconnectors.readفقط بخوانیدشکل گیری / ساعتhr.* قراردادها · hr.read / hr.write دامنه هاACTION hr.people.listhr.readفقط بخوانیدشکل گیری / ساعتACTION hr.people.createhr.writeخشکی_run + idempotencyشکل گیری / ساعتACTION hr.org.treehr.readفقط بخوانیدشکل گیری / ساعتhr امتناع کنید، نه یک لیست خالی. آنچه که PeopleOS HR.محدودیت های نرخ در هر کلید بر روی یک پنجره ساعتی پیکربندی می شوند.پاسخ ها را افشا می کنند X-RateLimit-Limit, X-RateLimit-Remaining و X-RateLimit-Resetدرخواست رد شده 429 با Retry-Afterاستفاده از OpenAPI 3.0.3 قرارداد قرارداد یا مجموعه Postman Collection تولید شده از همان زمان تکرار
ساخت، آزمایش و آزاد شدن در شش مرحله
از یک پروفایل اداره شده شروع کنید یا قرارداد خود را تعریف کنید. سازنده هر مرحله قبل از اینکه بسته اتصال مستقل ایجاد کند، اعتبار می یابد.
با خیال راحت، سپس دروازه آزاد را پاس کنید.
استفاده از Use dry_run در اقدامات نوشتن پشتیبانی، تست اتصال متصل به سازنده را اجرا کنید و قبل از انتشار، مانیفست و قرارداد تولید شده را بررسی کنید. بسته بندی چک کردن نام های قابلیت اطمینان، تنظیمات، اثبات و فایل های مورد نیاز؛ کارکنان پس زمینه نظارت واکنشی و تحویل ورودی را کنترل می کنند.
یک بسته نمی تواند ادعا کند که توانایی کد آن ها ندارد.
OpsIQ\Connectors\ConnectorContract قدرت کشف زمان، سازنده، بسته های شخص اول، مطابقت، ژنرال API و هر مرجع می گوید که یک رجیستری توانایی خود را تعیین کرده و سه فایل باید قبل از آن با یکدیگر موافقت کنند OpsIQ یک ردیف را به شما هدایت می کند.
- 01 connector.php کلاس اجرا
- 02 IdentityProvider.php کلید خارجی پایدار
- 03 SalesIngest.php (D)
- 04 actions.json عملیات به نام
- 05 settings.json پیکربندی عملگر
- 06 connector_contract.json قدرت قابل خواندن ماشین
hmac-sha256 بر روی یک بار تعیین کننده از هر فایل SHA-file256 پاسخ ها این تغییر از زمان امضاییک ed25519 پاسخ های امضای امضا شده توسط Nabtechبا کلید عمومی بسته بندی شده و هیچ راز مشترک. Edit One Byte و اولین توقف تطبیق.
marketplace.json در خارج از امضا با تعریف: نصب کننده آن را پس از امضای، بنابراین ناشر هرگز نمی تواند آن را امضا کرده است.
نگهبان که هرگز شکست نخورده است اثبات نشده است.
تست های سبز به شما می گویند که امروز هیچ چیز شکست خورده نیست، آنها به شما نمی گویند که نگهبانی که نوشته اید متوقف خواهد شد، زیرا محافظی که هرگز ورزش نمی کند دقیقاً مانند یک نگهبان است که هیچ کاری انجام نمی دهد، بنابراین قلب خود را در هدف متوقف می کنیم و خواستار آن هستیم که صدای جیغ ها را زیر پا بگذارد.
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.
جهش هرگز اعمال نمی شود.
متن جستجو مطابقت نداشت، فایل دست نخورده بود، مجموعه گذشت و اثبات ثبت شده سبز زیر کد قدیمی در مورد کد که هرگز قدیمی نبود، با نیاز به یک بازی متنی و مقایسه هش فایل هر دو طرف، آموزش داده شد.
جهش چیز دیگری را شکست.
این مجموعه قرمز بود، زیرا فایل متوقف شد و یا بوت استرپ مرد، و اثبات ثبت یک قرمز که هیچ ربطی به گارد نداشت. نام: آزمون در میان شکست ها
نمی تواند یک جهش یافته را روی دیسک بگذارد.
هر جهش نسخه اصلی را به یک کناری خارج از درخت وب، می نویسد مارکر نام گذاری برجسته تغییر، و توسط یک داور خاموش در هر مسیر خروج رد شده است. A نشانگر از یک اجرا سقوط کرده است افتخار قبل از جهش بعدی آن فایل است.
گواهی نامه یک فرمان است با یک کد خروجی
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/ تنظیمات، اقدامات، مشخصات سازنده، نقشه برداری رویداد سفر و بازرگانی، دستور کار جریان، قراردادهای اتصال و انتشار مانیفست.
- manifests با هم موافق و موافقم
- قابلیت های در کلاس اجرا وجود دارد
- interfaces اجرا در جایی که اعلام شد
- files هر فایل مورد نیاز
- اقدامات بازی با اقدامات آشکار
- destructive تاییدیه
- هویت کلید خارجی پایدار، نه ایمیل
- بازی Replay به روز رسانی تکراری، هرگز تکرار نمی شود
- شرکت های تجاری بیانیه ها با پسوند مطابقت دارند
- مستندات دانلود بازی های آموزشی Udemy, VerELOPER, CHANGELOG
- طرح ها هر یک JSON اعتبار
$ 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
اولین مورد را در یک حساب غیر تولیدی واقعی با --live-settings=/secure/test-acme.jsonدر حالی که هنوز هم خسته کننده هستید، آخرین را برای آن مبادله کنید. --unsigned-okاین کار با یک امضای گمشده به عنوان هشدار انتظار می رود، نه اینکه وانمود کند که خوب است.
آنچه که می توانید بفروشید فایل است نه ثبت نام.
یک کانکتور که می تواند فروش کند، اعلام می کند خود خودش عملیات پاسخ OpsIQنقش های تجاری canonical. حضور فایل ادعایی است که در تنظیمات فروش زمانی که آن را اعلام و ناپدید می کند، به نظر می رسد هیچ لیستی برای پیوستن وجود ندارد و هیچ کس درخواست نمی کند.
یک canonical نوشتن نقش نقشه برداری شده به یک رکورد عمومی است: این بازی ساختاری است: ذخیره سازی بدون در کنار یک فعل جهش، هر قرارداد نام گذاری شما.نوشتن ردیف کسب و کار مستقیم قیمت گذاری پلت فرم، قفل کردن دسترسی و ایمیل تأیید را رد می کند و سفارش سیستم خود بازرگان تنها نیمی از آن را باور دارد. recovery یا به همین دلیل، یک زمان گیر است.
{
"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 تولید شده و طرح های آن additionalProperties:falseبنابراین یک بلوک دستی وجود دارد اعتبار و سپس بر روی اجرای ژنراتور بعدی نوشته شده است.
نقشی نه در CommerceRole وجود ندارد. OpsIQ هیچگاه از یک نام عملیاتی به آن اشاره نکنید، زیرا یک اسم وعده ای نیست.
این عملیات باید در شما ظاهر شود actions.jsonاعلام یکی که وجود ندارد به مشتری چیزی را وعده می دهد که پس از آن هیچ چیز تولید نمی کند.
خطرناک ترین زمان بندی زمانی است که پلت فرم ممکن است قبلا کار را انجام داده باشد بدون اینکه یک "سرزمین نوشتن من" به نظر برسد، تنها گزینه ها کور هستند یا سفارش خود را از دست می دهند.
هر گونه نقش پرداخت در سطح پرداخت نیز اعلام می کند payment_profile با محیط زیست محیطی, webhook_verify استفاده از طرح خود ارائه دهنده و event_mapیک محیط غیر دولتی این است که چگونه ارائه دهنده آزمون پرداخت زنده را انجام می دهد.
OpsIQ در مقابل ادغام DIY
چه یک پلت فرم قرارداد، امضا شده، حسابرسی به شما می دهد که نورد وب سایت خود و لوله کشی AI-action هرگز نخواهد بود.
| قابلیت | خودتان را رول کنید | OpsIQ |
|---|---|---|
| دانلود بازی The Bearer API + HMAC-sated webhooks | دست-rolled | ✓ |
| خشک می نویسد + 24 ساعت های موفقیت آمیز | DIY | ✓ |
| 1m→5m→30m→ 2h → 12hretries | صفحه DIY | ✓ |
| ثبت نام قرارداد اقدام (AI نمی تواند تماس ها را اختراع کند) | — | ✓ |
| سیاست تایید قبل از عوارض جانبی | — | ✓ |
| برچسب های خطای پایدار + Request IDs | راهنمای ورود | ✓ |
| گزینه های Direct HTTP + Create client Options | خودتان را بنویسید | ✓ |
| OpenAPI 3.0.3 قرارداد قابل خواندن ماشین | شاید شاید | ✓ |
| شش مرحله ای سازنده + بسته بندی | ساخت یک زنجیره ابزار | ✓ |
| کلیدهای ثابت شده در فضا و محدودیت های ساعتی | متغیرها | ✓ |
| الگوی اتصال: کد پلتفرم جدا شده باقی می ماند | — | ✓ |
سوالات توسعه دهنده، پاسخ داد.
تأیید اعتبار، قراردادها، retries، نسل مشتری، تست ایمن و مدل کانکتور قبل از درخواست تولید اول.
Authorization: Bearer opq_…کلیدها می توانند بدون محدودیت، محدود یا خواندن باشند، دامنه های حداقل امتیاز را حمل کنند، از یک حد ساعتی اطاعت کنند و می توانند به یک امضای کار فضایی برسند. X-OpsIQ-Signature, X-OpsIQ-Timestamp, X-OpsIQ-Event و X-OpsIQ-Delivery.hash_hmac('sha256', $rawBody, $secret) و مقایسه آن با X-OpsIQ-Signature استفاده از hash_equals. Validate X-OpsIQ-Timestamp در پنجره ی بازپخش و استفاده از آن X-OpsIQ-Delivery به عنوان شناسه تحویل قابل ردیابیdry_run در اقداماتی که قرارداد تولید شده از آن پشتیبانی می کند، تست اتصال متصل به آداپتور را اجرا کنید، فایل های تولید شده خود را بررسی کنید و قبل از درمان کانکتور به عنوان آماده ، مطابق بسته و درب ها را آزاد کنید.settings.jsonاختیاری actions.json, یک قرارداد قابلیت تولید شده ، مستندات و پسوندهای اختیاری سازمانی . The Six- Stage Builder آن را مونتاژ می کند؛ رجیستری آن را کشف می کند ؛ مطابقت و آزاد کردن دروازه ها اعتبار آن را تأیید می کند.