עשה את הפלטפורמה שלך AI-Operable
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.
בקשה סקופית. אירוע חתום בחוץ.
« קודם כל פעולה /api/v1.php עם מפתח של Bearer. OpsIQ סיכות את סביבת העבודה, מאמת את חוזה הפעולה ואת הרשאות, ולאחר מכן מבצעת או לוח זמנים יבש זה. ארועים קנוניים רשומים לעזוב דרך תור משלוח מוקצה HMAC עם ניסיונות עוקבים ו retries כבולה.
מפתח לשילוב נשלט שלושה צעדים
שתף מפתח לפחות פריצה, לגלות את החוזה שנוצר, יבש-ריצה לכתוב, ולאחר מכן להירשם Webhook כאשר היישום שלך צריך משלוח אירוע רקע.
קבל מפתח
היכנסו ויצרו דובדבן API מפתח (opq_…(בהגדרות מפתח, ולתת לכל שילוב רק את פני השטח שהוא צריך.
גילוי ואימות
קרא Read meta.actions, meta.action ו meta.scopesשימוש; dry_run לאמת את התסריט לפני ביצוע
הוצאה להורג & מנוי
הוסף מפתח idempotency עבור כותב, ולאחר מכן להירשם נקודת הקצה שלך לאירועים הקנטוןיים את צרכי היישום שלך.
דפוס מחבר אחד חמישה פרימיטיביים נקיים
כל דבר ספציפי לפלטפורמה חי בחבר. OpsIQ הליבה נשארת גנרית, AI נשאר צפוי, והשילוב שלך נשאר ביקורתי.
ספר לספר OpsIQ מה בדיוק קרה.
אירועים אופציונלייםמיטיים מהפלטפורמה שלך, או מגדירים אירוע מותאם אישית מבוקר.מנויים מקבלים את האירוע באמצעות עדיפות רשומה ותקנות המשלוח.
אירועinvoice.paid, ticket.created, subscription.cancelled, customer.signed_up או שלך.
מנויים Fan-outהמוח AI, כללי אוטומציה, מחברים מראות ונקודות הקצה של האינטרנט שלך מגיבים כולם.
סדר עדיפותלשלוח כל כך מראות לכתוב לפני שהזהיר את האש.
ספר לספר OpsIQ מה אפשר לעשות AI.
כל פעולה בשם מקבל חוזה שנוצר: היקף, תכונה, קריאה או כתיבה אדיבה, סיכון, מדיניות אישור, בקשה ותגובה schema, תמיכה יבשה, idempotency שגיאות יציבות.
פעולה schema{
"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. PHP הפניות שולחים פלוס Node ו- Python אינטגרציה לקוחות מכסה אירוע חתום וזרימת Webhook; כל ערימה יכולה לקרוא אותו הדבר 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.",
},
)
צור פעם. Plug into anything
מחבר הוא חבילה נשלטת שנוצרת או מיובאת באמצעות זהות, Auth, Test, Actions, Triggers ו- Review.הוא מכריז על יכולות הפנים OpsIQ מותר לחשוף.
פתח את ה- 6 שלביםאנגלית פשוטה פעולה מאובחנת.
OpsIQ אף פעם לא ממציאה את השיחה הנכונה. היא עובר דרך החוזים הרשומים, מכינה את העומס, מבקשת אישור כאשר הפעולה דורשת זאת, ומפיקה שורת ביקורת מלאה כאשר היא מבצעת, כך ש-AI שיכול מעשה פעולה לעולם אל תהפוך לבינה מלאכותית שאי אפשר לסמוך עליה.
API משטח במבט אחד.
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.writeיבש_run + idempotencyהמונחים: HourACTION security.reportsecurity.writeיבש_run + idempotencyהמונחים: HourACTION platform.routes.writeניהולאישור + מפתחהמונחים: HourACTION meta.actionsגילוי ציבוריקרא רקהמונחים: HourACTION tickets.listtickets.readקרא רקהמונחים: HourACTION connectors.listconnectors.readקרא רקהמונחים: Hourhr.* חוזים hr.read / hr.write היקףACTION hr.people.listhr.readקרא רקהמונחים: HourACTION hr.people.createhr.writeיבש_run + idempotencyהמונחים: HourACTION hr.org.treehr.readקרא רקהמונחים: Hourhr יש סירוב, לא רשימה ריקה. מה זה PeopleOS HR.גבולות המחירים מוגדרים למפתח בחלון שעה.תשובות לחשוף X-RateLimit-Limit, X-RateLimit-Remaining ו X-RateLimit-Resetבקשה נדחתה חוזרת 429 עם Retry-Afterהשתמש ב- OpenAPI 3.0.3 החוזה או אוסף Postman מיוצר מאותו רשם זמן.
לבנות, לבדוק ולהשתחרר שישה שלבים
התחל מפרופיל מבוקר או להגדיר את החוזה בעצמך.הבן תוקף כל שלב לפני שהוא יוצר חבילת חיבור המכילה עצמי.
באופן קבוע, לאחר מכן לעבור את שער השחרור.
שימוש בשימוש dry_run על פעולות כתיבה נתמכת, להפעיל את מבחן החיבור הכרוך של היצרן, ולבדוק את הביטוי שנוצר והחוזה לפני השחרור.חבילה אימות קבצים שמות, הגדרות, הוכחת וקבצים הנדרשים; עובדי רקע מטפלים בפיצול תגובתי ובמשלוח מחוץ לבית.
חבילה לא יכולה לטעון יכולת הקוד שלו לא קיים.
OpsIQ\Connectors\ConnectorContract הוא הסמכות. מהפכת Runtime, ה- Builder, First-מפלגת חבילות, קונפורציה, הגנרל API וכל אזכור קורא כי רישום אחד קובע יכולת ושלוש קבצים צריכים להסכים זה עם זה לפני כן OpsIQ תרים לך שורה אחת.
- 01 connector.php מעמד הזמן
- 02 IdentityProvider.php מפתח חיצוני יציב
- 03 SalesIngest.php יישבות ()
- 04 actions.json שם המבצעים
- 05 settings.json המונחים:
- 06 connector_contract.json סמכות מכונה
hmac-sha256 over a deterministic payload of per-file SHA-256 hashes answers זה השתנה מאז החתימה. 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.
המוטציה מעולם לא הוחלה.
הטקסט החיפוש לא התאים, הקובץ היה בלתי מזוהם, החבילה עברה וההוכחה שנרשמה ירוק תחת הקוד הישן על קוד שמעולם לא היה זקן, נתפס על ידי כך שהוא דורש התאמה טקסטאלית אחת בלבד והשוואה בין קובץ ישים.
המוטציה שברה משהו אחר.
החבילה יצאה אדומה משום שהקובץ הפסיק להתאסף או למצנחת המגפיים מת, וההוכחה הקליטה אדום שלא היה לו קשר עם המשמר. שם השם מבחן בין הכישלונות
לא ניתן להשאיר מוטאנט על הדיסק.
כל מוטציה מציגה את המקור לצומת מחוץ לעץ השמור ברשת, כותבת סימן המכנה את השינוי יוצא הדופן, ואינה ניתנת על ידי מטפל סתום בכל נתיב יציאה. 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 מסכים ומסכים אחד עם השני
- יכולות קיים ב-Runtime Class
- interfaces מיושם היכן הוכרז
- files כל קובץ נדרש
- פעולות תואם את הפעולות שמתבטאת
- destructive הצהרה
- זהות מפתח חיצוני יציב, לא דואר אלקטרוני
- Replay עדכונים חוזרים, לעולם לא משוכפלים
- מפעל הצהרות תואמות את הסיומת
- מסמכים שם הסרטון: DeVELOPER, CHANGELOG
- schemas כל 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 נוצר וקבוצת הschema שלו additionalProperties:falseכך שבלוק ידני לא יכשל את האימות ואז יוכתב על גבי הגנרטור הבא.
תפקיד לא CommerceRole לא קיים. OpsIQ אף פעם לא מפרים את שמו של מבצע, כי שם אינו הבטחה.
המבצע חייב להופיע במקומכם actions.jsonהבהרת אחד שאינו קיים מבטיח ללקוח דבר אשר אינו מייצר דבר.
זמן המסוכנים ביותר הוא זה שלאחר הפלטפורמה כבר יכול היה לעשות את העבודה.ללא "אדמת הכתיבה שלי" נראית, האפשרויות היחידות הן עיוורות או מאבדות את ההזמנה.
כל תפקיד של מעמד תשלום מצהיר גם payment_profile עם סביבה, webhook_verify באמצעות התוכנית של הספק עצמו, event_mapסביבה לא ידועה היא כיצד ספק מבחן-מודה לוקח תשלום חי.
OpsIQ לעומת שילוב DIY
איזו פלטפורמה ריבונית, חתום, פלטפורמה ביקורתית נותנת לך כי מתגלגלת ה-Webhooks שלך ו- AI-action צנרת לעולם לא תרצה.
| יכולת Capability | רוץ בעצמך | OpsIQ |
|---|---|---|
| סקופ Bearer API + HMAC-signed webhooks | יד | ✓ |
| יבש-run כותב + 24 שעות מוצלחות | DIY | ✓ |
| 1→5→30 מטר→ 2h → 12hRetries | תור DIY | ✓ |
| רשם פעולה (AI לא יכול להמציא שיחות) | — | ✓ |
| מדיניות אישור לפני תופעות לוואי | — | ✓ |
| פיסת שגיאה אקסטאלית + בקשה מזהה | המונחים: | ✓ |
| HTTP Direct HTT+ יצר אפשרויות לקוח | כתוב בעצמך | ✓ |
| OpenAPI 3.0.3 החוזה קריא מכונה | Maybe | ✓ |
| Six-שלבי Builder + החבילה שער יציאה | בניית שרשרת כלים | ✓ |
| מפתחות מבוססי סביבת עבודה ומגבלות שעה | VIR | ✓ |
| תבנית: קוד פלטפורמה נשאר מבודד | — | ✓ |
שאלות מפתח, ענה.
Authentication, חוזים, רטיבות, דור הלקוחות, בדיקות בטוחות ומודל המחבר, לפני בקשת הייצור הראשונה.
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 בתוך החלון ה-Replay שלך והשימוש X-OpsIQ-Delivery כ מזהה משלוחים.dry_run על פעולות אשר יצרו חוזה תומך בו, להפעיל את מבחן החיבור הכרוך של בונה Connector, לבדוק קבצים שנוצרו שלו ולהעביר את החבילה בהתאם ושחרור שערי לפני הטיפול במחבר כמוכנים.settings.jsonאופציונלי actions.jsonחוזה בעל יכולת, תיעוד ותוספות ארגוניות אופציונליות.השישים במהנים בונים את זה; הרישום מגלה זאת; התאמה ושחרור שערי אימות אותו.