ทําแพลตฟอร์มของคุณ เหมาะสมที่สุด
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 ด้วยกุญแจสายรัด OpsIQ ปักหมุดพื้นที่การทํางาน, ตรวจสอบสัญญาและสิทธิ์ในการกระทํา จากนั้นดําเนินการหรือเรียกใช้งานแบบแห้ง เหตุการณ์ที่มีการแจ้งเข้ามา จะออกผ่านทางคิวส่ง HMAC ที่มีการพยายามติดตาม และกําหนดวันนัดหมาย
จากคีย์ถึงส่วนร่วมที่ควบคุม สามขั้น
ตั้งกุญแจสํารอง ค้นว่าสัญญาที่สร้างมา ทํางานได้โดยเขียนขึ้นมา แล้วสมัครเว็บฮุค เมื่อโปรแกรมของคุณต้องการส่งเหตุการณ์ที่เบื้องหลัง
เอากุญแจมา
ลงชื่อและสร้างเครื่องปรับเสียง API กุญแจ (opq_…ในระบบพัฒนา และให้แต่ละการผนวกเท่านั้น พื้นผิวที่จําเป็น
สืบค้นและตรวจสอบ
อ่าน meta.actions, meta.action และ meta.scopes; use dry_run เพื่อตรวจสอบการเขียนก่อนดําเนินการ
ประมวลผลการสมัครสมาชิก
เพิ่มกุญแจการไม่กําหนดสิทธิ์สําหรับการเขียน จากนั้นให้สมัครรับเหตุการณ์ต่าง ๆ ที่โปรแกรมต้องการ
รูปแบบการเชื่อมต่อหนึ่ง ห้าพื้นฐานสะอาด
อะไรก็ตามที่ระบุในแพลตฟอร์ม ชีวิตที่เชื่อมต่อกัน OpsIQ แกนหลักยังคงทั่วไป, เอไอคงคาดเดาได้, และการรวมของคุณยังคงตรวจสอบได้
บอก OpsIQ สิ่งที่เพิ่งเกิดขึ้น
ผู้ สมัคร งาน ได้ รับ เชิญ ให้ ทํา งาน นี้ โดย อาศัย กฎ ที่ กําหนด ไว้ ก่อน และ การ จัด เตรียม ต่าง ๆ.
อ้างอิงเหตุการณ์invoice.paid, ticket.created, subscription.cancelled, customer.signed_up หรือเป็นของคุณ
ผู้บอกรับจดหมายสมอง AI กฎอัตโนมัติ การเชื่อมต่อกระจก และจุดปลายเว็บของคุณทั้งหมดตอบสนอง
ลําดับความสําคัญสัญญานดีนิพนธ์ เพื่อให้กระจกเขียนก่อนที่จะยิง
บอก OpsIQ สิ่งที่ AI ได้รับอนุญาตให้ทํา
ทุกปฏิบัติการที่ชื่อปฏิบัติการ ได้รับการทําสัญญาที่สร้างขึ้น: ขอบเขต, คุณสมบัติ, การอ่าน, การเขียน กรุณา, ความเสี่ยง, นโยบายยืนยัน, การร้องขอและการตอบสนอง, การรองรับการเหินแห้ง, การระบุตําแหน่ง, และข้อผิดพลาดที่เสถียร
การกระทํา{
"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 และ Postman. PMP. ผู้ส่งอ้างอิงและผู้ใช้ Node และลูกค้าที่รวมด้วย Python ครอบคลุมเหตุการณ์ที่มีลายเซ็น และ webhok flow; สแต็กใด ๆ ก็สามารถเรียกแบบเดียวกันได้ 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, action, ตัว กระตุ้น และ การ ทบทวน. OpsIQ ได้รับอนุญาตให้เปิดโปงได้
เปิดเครื่องก่อสร้าง 6 ฤดูกาลภาษาอังกฤษธรรมดา ดําเนินการเสร็จแล้ว
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_กระเจิง + ความไม่จํากัดปรับแต่ง/ ชั่วโมงACTION security.reportsecurity.write_กระเจิง + ความไม่จํากัดปรับแต่ง/ ชั่วโมงACTION platform.routes.writeกล่องโต้ตอบยืนยัน + กุญแจปรับแต่ง/ ชั่วโมง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_กระเจิง + ความไม่จํากัดปรับแต่ง/ ชั่วโมงACTION hr.org.treehr.readอ่านได้เท่านั้นปรับแต่ง/ ชั่วโมงhr ถูกปฏิเสธ ไม่ใช่รายการว่าง สิ่งที่ HR OS เป็น.ข้อจํากัดของอัตราการจํากัด ถูกปรับแต่งต่อคีย์บนหน้าต่างแบบชั่วพริบตา X-RateLimit-Limit, X-RateLimit-Remaining และ X-RateLimit-ResetHOURSฟังก์ชัน () จะคืนค่ากลับมาเป็นชั่วโมงของค่าเวลาที่กําหนด 429 ด้วย Retry-Afterใช้ OpenAPI 3.0.3 สัญญา หรือ คลังภาพของ Postman สร้างขึ้นจากคณะผู้สําเร็จราชการ
สร้าง ทดสอบ และ ปล่อย หกขั้นตอน
เริ่มจากโพรไฟล์ที่ควบคุมได้ หรือกําหนดสัญญาด้วยตนเอง ผู้สร้างจะยืนยันแต่ละขั้นตอน ก่อนที่จะทําการสร้างแพกเกจเชื่อมต่อที่ยึดอยู่ด้วยตนเอง
ความปลอดภัย จากนั้นผ่านประตูที่ปล่อย
ใช้ dry_run ในการรองรับการกระทําการเขียน, เรียกใช้ตัวทดสอบการเชื่อมต่อที่ ผู้สร้างได้ และตรวจสอบรายการและสัญญาที่ถูกสร้างมา ก่อนที่จะปล่อยออก. การตรวจสอบความถูกต้องของแพกเกจ ชื่อ, ค่าต่าง ๆ, การพิสูจน์ และจําเป็นในการจัดการการสอบถามเบื้องหลัง
แพกเกจไม่สามารถอ้างความสามารถของแพกเกจได้ รหัสของมันไม่มี
OpsIQ\Connectors\ConnectorContract คือผู้มีอํานาจ การค้นพบเวลาก่อสร้าง แพ็คเกจแรก, การปฏิบัติตาม, พลเอก API และทุก ๆ การอ้างอิงอ่านว่าหนึ่งอนุมาน. จงประกาศความสามารถและสามไฟล์ต้องเห็นด้วยกับกันก่อนที่จะ OpsIQ เส้นทางเดียวถึงคุณ
- 01 connector.php คลาสเวลาทํางาน
- 02 IdentityProvider.php ปุ่มพิมพ์ภายนอกคงที่
- 03 SalesIngest.php ฟังก์ชัน SECONDS () จะคืนค่ากลับมาเป็นค่าเป็นค่าจํานวนวินาทีของเวลาที่กําหนด
- 04 actions.json ชื่อการดําเนินการ
- 05 settings.json การปรับแต่งตัวดําเนินการ
- 06 connector_contract.json อํานาจที่อ่านได้ของเครื่องจักร
hmac-sha256 กว่าเงินที่จ่ายเพื่อการคาดเดา ของข้อมูลต่อแฟ้มต่างๆ256 แฮดส์คําตอบ มีการเปลี่ยนแปลงจากการเซ็น. An ed25519 ลายเซ็นคําตอบ มันลงนามโดย Nabtechตรวจดูกับกุญแจสาธารณะที่ห่อไว้ และไม่มีความลับร่วมกัน แก้ไขหนึ่งไบต์และหยุดแรกให้ตรงกัน
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.
การกลายพันธุ์ไม่เคยถูกนําไปใช้
ข้อความการค้นหาไม่ตรงกัน ไฟล์ไม่ได้แตะต้อง, ห้องสวีทผ่านและหลักฐานบันทึก สีเขียวภายใต้รหัสเดิม ร้องขอความตรงกันของข้อความ และเปรียบเทียบแฟ้มเสียงทั้งสองฝั่ง
การกลายพันธุ์ทําให้บางสิ่งเสียหาย
ถูก จับ โดย การ สะกด พวก มนุษย์ ที่ เปลี่ยน ศาสนา และ เรียก ร้อง ให้ ทํา ชื่อ ทดสอบจากความล้มเหลว
มันไม่สามารถปล่อยให้มนุษย์กลายพันธุ์อยู่บนดิสก์
การกลายพันธุ์ทุกตัวนี้ จะทําการคัดลอกภาพต้นฉบับไปยังรถด้านข้างของต้นไม้ที่บริการเว็บอยู่ ให้เขียนเครื่องหมายที่ชื่อการเปลี่ยนแปลงที่โดดเด่น และถูกยกเลิกโดยตัวจัดการการปิดการทํางานบนเส้นทางทางออกทุก ๆ ทาง โดยเครื่องหมายจากปุ่มชนจะถูกใช้เป็นเครื่องหมายการค้าแบบออฟไลน์ก่อนจะทําการเปลี่ยนชื่อของแฟ้มดังกล่าวอีกครั้ง
การปรับตั้งเป็นคําสั่ง ด้วยรหัสทางออก
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 ยืนยันการยืนยัน
- การแสดงตัว กุญแจภายนอกที่เสถียร ไม่ใช่อีเมล
- เล่นซ้ํา การปรับปรุงซ้ํา ไม่เคยซ้ํา
- เอ็นเตอร์ไพรส์ แถลงการณ์ตรงกับส่วนขยาย
- ด็อก ผู้ อ่าน, ผู้ ประกาศ, ผู้ เปลี่ยน แปลง
- Name=อุปกรณ์Name ทุก 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บทบาทของการจัดการการค้า การมีแฟ้มนี้ คือการอ้างสิทธิ์ มันปรากฎอยู่ในการตั้งค่าการขาย ทันทีที่มันประกาศและหายไปเมื่อมันหยุดการทํางาน ไม่มีรายการที่จะเข้าร่วมและไม่มีใครถาม
การ ระบุ ตัว เขียน บทบาทของงานเขียนทั่วไป ตรงกับโครงสร้าง: จัดเก็บคํานาม ข้างๆ คํากริยาที่สะกดผิด 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สภาพแวดล้อมที่ไม่ระบุสถานะ คือวิธีที่ผู้จัดจําหน่ายแบบทดสอบจ่ายสด
OpsIQvs a การอินทิเกรต DIY
สิ่งที่สัญญากําหนดมา, ลงนาม, เวทีตรวจสอบ ช่วยให้คุณกลิ้งเว็บฮุคของคุณเอง และท่อ AI-active จะไม่มีทาง
| ความจุ | กลิ้งตัวเอง | OpsIQ |
|---|---|---|
| หนวดแบบประมาณ API + HMAC ที่เซ็นชื่อเว็บฮุค | เข็นด้วยมือ | ✓ |
| เขียนแบบแห้ง + 24- ชั่วโมงที่ประสบความสําเร็จ replay | DIY | ✓ |
| 1m→5 ม.→30 ม.→ 2h → 12hการหมุนภาพ | คิวของ DIY | ✓ |
| ลงทะเบียนการกระทํา (ฉันประดิษฐ์สายไม่ได้) | — | ✓ |
| ยืนยันนโยบายก่อนมีผลข้างเคียง | — | ✓ |
| ข้อผิดพลาดที่จับต้องได้คือ ซองจดหมาย + หมายเลขประจําตัวที่ต้องการ | ทําเอง | ✓ |
| ตัวเลือกของไคลเอนต์ HTTP + ที่สร้างมา | เขียนเองสิ | ✓ |
| OpenAPI 3.0.3 สัญญาที่อ่านได้อัตโนมัติ | บางที | ✓ |
| ผู้สร้าง 6 ฤดูกาล + ประตูแพกเกจปล่อย | สร้างถังเครื่องมือ | ✓ |
| กุญแจสําหรับวางในขอบเขตการทํางาน และจํากัดชั่วโมง | ไดเรกทอรี | ✓ |
| รูปแบบการเชื่อมต่อ: | — | ✓ |
คําถามนักพัฒนา ตอบมา
การตรวจสอบสิทธิ์ สัญญา รีทรีรีส์ ลูกค้ารุ่น ทดสอบความปลอดภัย และโมเดลเชื่อมต่อ ก่อนที่จะมีการขอผลิตครั้งแรก
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. ตรวจสอบความถูกต้อง X-OpsIQ-Timestamp ภายในหน้าต่างที่เล่นซ้ําแล้วใช้ X-OpsIQ-Delivery เป็นเครื่องระบุสัญญาณส่งที่แกะรอยได้dry_run ในการกระทําซึ่งสัญญาที่สร้างรองรับมัน ให้เรียกตัวสร้างการเชื่อมต่อของตัวเชื่อมต่อ ตรวจดูแฟ้มที่สร้างขึ้น และส่งผ่านความต่อเนื่องของแพกเกจและปล่อยเกตก่อนที่จะปฏิบัติต่อ ตัวเชื่อมต่อพร้อมsettings.json, เลือก actions.jsonส่วนขยายองค์กรที่ผลิตขึ้นโดยระบบสัญญาเอกสาร และตัวเลือกของกิจการต่างๆ ผู้สร้าง 6 ยุคนี้ประกอบมัน การลงทะเบียนค้นพบมัน การปฏิบัติตามและปล่อยประตูตรวจสอบ