डेवलपर प्लेटफॉर्म · जनरल API _· वेबहुक · कनेक्टर्स

अपना मंच बनाएं एआई-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.

स्कोप्ड बियरर कुंजी2,415 contract actionsओपनएपीआई 3.0.3 + पोस्टमैनHMAC वेबहुक डिलीवरी
में स्कोप्ड अनुरोध
हस्ताक्षरित वेबहूक बाहर → 200 ठीक
लाइव भालू कार्रवाई → OpsIQ → वेबहुक पर हस्ताक्षर किए POST /api/v1.php प्राधिकरण: बियरर { "action": "tickets. reply", "dry_run": True } सत्यापित · चलाएँ · ऑडिट कुंजी + कार्यक्षेत्र✓ गुंजाइश + अनुबंध ✓ अनुरोध करना आपका वेबहुक एंडपॉइंट X-OpsIQ-Event: टिकट.replied HMAC → हैंडल को सत्यापित करें 200 ठीक
2,415General API _Affectation
69कम से कम प्रवीणता गुंजाइश
dry_runनिष्पादन से पहले लिखने के अनुबंध को मान्य करें
24घंटेसफल विचारधारा लिखने फिर से खेलना
अनुरोध जीवनचक्र

में अनुरोध दायर किया गया। साइन आउट किया गया घटना।

एक कार्रवाई करने के लिए पोस्ट /api/v1.php एक स्कोप्ड बियरर कुंजी के साथ। OpsIQ वर्कस्पेस को पिन करें, कार्रवाई अनुबंध और अनुमतियों को मान्य करता है, फिर इसे निष्पादित या सूखा कर देता है। सब्सक्राइब्ड कैनोनिकल इवेंट्स एक HMAC-signed डिलीवरी कतार के माध्यम से ट्रेसेबल प्रयासों और बाध्य रिट्रीज के साथ छोड़ देते हैं।

HMAC-SHA256 वेबहूक्स - इनबाउंड और आउटबाउंड वेबहुक पेलोड कच्चे शरीर पर हस्ताक्षर किए जाते हैं; API एक स्कोप्ड बियरर कुंजी के साथ प्रमाणित करता है।
स्वचालित retries - असफल प्रसव वापस और फिर से शुरू, एक वितरण आईडी के साथ आप ट्रेस कर सकते हैं।
Replay-safe लिखते हैं - सफल idempotent लिखते हैं के लिए एक ही प्रतिक्रिया वापस लौटें 24 घंटे; समवर्ती डुप्लिकेट एक दावा साझा करते हैं।
आपका ऐप POST /api/v1.php प्राधिकरण: बियरर idempotency_key: idems_31c7 सत्यापित करें - चलाएँ - ऑडिट आपका समापन बिंदु POST /webhooks HMAC सत्यापित करें 200 ठीक कुंजी + कार्यक्षेत्र pinned गुंजाइश + भूमिका जांच अनुबंध मान्य निष्पादित या सूखी रन साइन्ड वेबहॉक डिलीवर { X OpsIQ_-Event: टिकट. X OpsIQ_-DeliveryDlv_8f2a9 X-OpsIQ-टाइमस्टैम्प: 1786584362 X-OpsIQ-हस्ताक्षर9c4e0a7b ... } वितरित
01 बियरर अनुरोध 02 पिन वर्कस्पेस 03 अनुबंध मान्य 04 निष्पादित या सूखी रन 05 कतार हस्ताक्षरित घटना
क्विकस्टार्ट

कुंजी से नियंत्रित एकीकरण तक तीन चरण

कम से कम प्रिविलेज कुंजी जारी करें, उत्पन्न अनुबंध की खोज करें, एक लिखने को सूखा दें, फिर जब आपके आवेदन को पृष्ठभूमि घटना वितरण की आवश्यकता होती है तो वेबहुक को सब्सक्राइब करें।

अनुबंधकनेक्ट
GENERAL API _\ contract चालित 1 _· कुंजी जनरेट करें opq_live_xxx · एक स्कोप्ड बियरर कुंजी 2 _·\write contracts POST /api/v1.php · मेटा.एक्शन 3 · एक लिखने की वैधता टिकट. reply · dry_run: सच 4 · घटनाओं की सदस्यता लें टिकट.रिप्लाइड · HMAC वितरण
निष्पादनDry_run → स्वीकृत लिखने, समान अनुबंध
01

एक कुंजी प्राप्त करें

साइन अप करें और एक स्कोप्ड बियरर उत्पन्न करें API कुंजीopq_…) डेवलपर सेटिंग्स में, और प्रत्येक एकीकरण को केवल इसकी आवश्यकताओं की सतहों को ही देते हैं।

02

खोज और मान्य करें

पढ़िए meta.actions, meta.action और meta.scopesउपयोग dry_run निष्पादन से पहले लिखने के लिए मान्य करने के लिए।

03

निष्पादित और सदस्यता

लिखने के लिए एक आइडमेटेंसी कुंजी जोड़ें, फिर अपनी आवेदन आवश्यकताओं को अपने आवेदन की घटनाओं के लिए अपने समापन बिंदु को सब्सक्राइब करें।

यह कैसे एक साथ फिट बैठता है

एक कनेक्टर पैटर्न। पांच स्वच्छ आदिम।

कुछ भी प्लेटफॉर्म-विशिष्ट जीवन एक कनेक्टर में। OpsIQ कोर सामान्य रहता है, AI पूर्वानुमान योग्य रहता है और आपका एकीकरण लेखा परीक्षा योग्य रहता है।

01
ट्रिगर्स

टेल OpsIQ क्या हुआ?

अपने मंच से एमिट कैनोनिकल इवेंट्स, या एक शासित कस्टम इवेंट को परिभाषित करते हैं। सब्सक्राइबरों को पंजीकृत प्राथमिकता और वितरण नियमों के माध्यम से कार्यक्रम प्राप्त होता है।

घटना संदर्भ
invoice.paid अनौपचारिक घटना A sineलाइव संदर्भ नियमप्राथमिकता 20 दर्पणपहले लिखें वेबहुकहस्ताक्षर
यूनिवर्सल + कस्टम इवेंटinvoice.paid, ticket.created, subscription.cancelled, customer.signed_up या आपका खुद का। फैन-आउट सब्सक्राइबरएआई मस्तिष्क, स्वचालन नियम, दर्पण कनेक्टर और आपका वेबहुक सभी प्रतिक्रियाएं इंगित करता है। प्राथमिकतानियतिवादी प्रेषण इसलिए दर्पण आग की चेतावनी से पहले लिखते हैं।
02 / Action contracts

टेल OpsIQ एआई को क्या करने की अनुमति है।

हर नामित ऑपरेशन को एक उत्पन्न अनुबंध प्राप्त होता है: गुंजाइश, फीचर, रीड या राइट टाइप, रिस्क, कन्फर्मेशन पॉलिसी, अनुरोध और प्रतिक्रिया स्कीमा, ड्राई रन सपोर्ट, आइडिमेटेंसी और स्थिर त्रुटियों।

कार्य स्कीमा
एआई कार्रवाई को आविष्कार नहीं कर सकतायह केवल उन लोगों को देखने के लिए पूछ सकता है जिन्हें आपने पंजीकृत किया है। पुष्टिकरण नीतिजोखिम भरा कार्रवाई किसी भी पक्ष प्रभाव से पहले एक पूर्वावलोकन कार्ड को ट्रिगर। रोल + सतह गैटिंगप्रत्येक क्रिया ने भूमिकाओं और सतहों को यह चलाने की अनुमति दी है।
एक्शन अनुबंध उत्पन्न करना JSON
{
  "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"] }
}
03 / हस्ताक्षरित वेबहुक

अपने स्टैक के लिए घटनाओं पुश - क्रिप्टोग्राफिक सबूत के साथ।

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.

सुरक्षाअनुरेखण योग्य वितरण ID5-step back-off
वेबहुक संदर्भ
Webhook - php
$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
04 / SDK

प्रत्यक्ष उपयोग करें या क्लाइंट को उत्पन्न करें जिसे आप पसंद करते हैं HTTP।

पूर्ण जनरलAPI OpenAPI के रूप में प्रकाशित किया गया है 3.0.3 और पोस्टमैन। PHP संदर्भ प्रेषकों प्लस नोड और पायथन एकीकरण ग्राहकों ने हस्ताक्षरित घटना और वेबहुक प्रवाह को कवर किया; किसी भी स्टैक को उसी तरह कॉल कर सकता है 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.",
    },
)
प्रत्यक्ष JSON HTTPOpenAPI 3.0.3_पोस्टमैन संग्रहएकीकरण सहायक
05 _/ कनेक्टर पैटर्न

एक बार बनाएँ। कुछ में प्लग करें।

एक कनेक्टर पहचान, Auth, टेस्ट, एक्शन, ट्रिगर्स और समीक्षा के माध्यम से उत्पन्न या आयातित एक शासी पैकेज है। इसका प्रकटन क्षमता सतहों की घोषणा करता है OpsIQ को उजागर करने की अनुमति है।

छह चरण बिल्डर खोलें
छह निर्देशित चरणोंपहचान, Auth, टेस्ट, एक्शन, ट्रिगर और समीक्षा पैकेज पीढ़ी को समझाने योग्य रखने के लिए। अनुबंध संचालित8 profiles and 57 capability types declare the surfaces a package implements. रिलीज-gatedपैकेज तैयार होने से पहले सुरक्षा, सिद्धि और अनुरूपता जांच शुरू होती है।
इरादे से सुरक्षित कार्रवाई तक

में सादा अंग्रेजी। लेखापरीक्षित ऑपरेशन बाहर।

OpsIQ कभी सही कॉल नहीं आविष्कार करता है. यह पंजीकृत अनुबंधों के माध्यम से चलता है, पेलोड तैयार करता है, पुष्टि के लिए पूछता है जब कार्य की आवश्यकता होती है, और एक पूर्ण ऑडिट पंक्ति उत्पन्न करता है जब यह निष्पादित होता है, इसलिए एक एआई जो कर सकता है कार्य कभी भी एआई नहीं बन सकता है।

अनुबंध-सीमा एआई केवल उन कार्यों का प्रस्ताव करता है जिन्हें आपने पंजीकृत किया है।
साइड-इफेक्ट्स से पहले पुष्टि करें। जोखिमपूर्ण कार्रवाई पहले एक पूर्वावलोकन कार्ड की सतह।
कुल याद हर संकेत, प्रतिक्रिया और कार्रवाई के परिणामस्वरूप एआई इतिहास में कब्जा कर लिया गया।
4 _चरणintent → लेखा परीक्षा
HMACनिष्पादित करने से पहले हस्ताक्षर किए
"refund Adam's Last चालान" चरण 1 · आशय संकल्प → मिलान: saas. refund_invoice सतह: व्यवस्थापक · भूमिका: मालिक 2 मान्य चरण 3 · पुष्टि और संकेत पूर्वावलोकन कार्ड · चालान #8421 पुष्टि चरण 4 · ऑडिट पंक्ति कर्ता · प्रोम्ट · परिणाम · 412ms केवल · निर्यात करने योग्य CSV
कोई आविष्कार कॉल नहींकेवल अनुबंध रजिस्ट्री
पुष्टि-पत्रदुष्प्रभावों से पहले पूर्वावलोकन
अनुरोध ट्रेसअभिनेता + अनुबंध + परिणाम
संदर्भ

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.

ओपनएपीआई 3.0.3 संदर्भ
कार्रवाईप्रमाणीकरणसुरक्षासीमा
कार्रवाई लिखेंPOST /api/v1.php _· अनुबंध को मान्य किया गया
ACTION tickets.replytickets.writeDry_run + idempotencyकॉन्फ़िगर / घंटे
ACTION security.reportsecurity.writeDry_run + idempotencyकॉन्फ़िगर / घंटे
ACTION platform.routes.writeव्यवस्थापकपुष्टि + कुंजीकॉन्फ़िगर / घंटे
पढ़ें और खोज कार्रवाईसमान POST सतह · स्थिर लिफाफे
ACTION meta.actionsसार्वजनिक खोजकेवलकॉन्फ़िगर / घंटे
ACTION tickets.listtickets.readकेवलकॉन्फ़िगर / घंटे
ACTION connectors.listconnectors.readकेवलकॉन्फ़िगर / घंटे
POS HRकर्ट hr.* अनुबंध · hr.read / hr.write गुंजाइश
ACTION hr.people.listhr.readकेवलकॉन्फ़िगर / घंटे
ACTION hr.people.createhr.writeDry_run + idempotencyकॉन्फ़िगर / घंटे
ACTION hr.org.treehr.readकेवलकॉन्फ़िगर / घंटे
पीओएस एचआर बाहरी मानव संसाधन वेबहुक घटनाओं को नहीं भेजता है। उसी POST सतह के माध्यम से इसे पहुंचें, या अन्य मॉड्यूल प्रकाशित होने वाले कार्यक्रमों की सदस्यता लें। पूर्ण संदर्भ: पीपुल्स API और कनेक्टर्स और डेवलपर संदर्भ के पीपुल्स अनुभागमॉड्यूल को गेट किया जाता है, इसलिए बिना किसी कुंजी के hr एक इनकार हो जाता है, कोई खाली सूची नहीं। क्या है PeopleOS HR.

दर सीमा एक घंटे की खिड़की पर प्रति कुंजी को कॉन्फ़िगर किया गया है। जवाब X-RateLimit-Limit, X-RateLimit-Remaining और X-RateLimit-ResetA recessed request return to a अस्वीकार अनुरोध रिटर्न 429 साथ Retry-AfterTo use the way of a suffering. ओपनएपीआई 3.0.3 अनुबंध या पोस्टमैन संग्रह उसी समय रजिस्ट्रार से उत्पन्न।

एक कनेक्टर बनाएँ

निर्माण, परीक्षण और रिलीज में छह चरणों।

एक शासित प्रोफ़ाइल से शुरू करें या अनुबंध को खुद परिभाषित करें। बिल्डर प्रत्येक चरण को मान्य करता है इससे पहले कि वह स्वयं युक्त कनेक्टर पैकेज उत्पन्न करे।

1पहचान नाम, स्लग, प्रोफ़ाइल और घोषित क्षमता सतहों।
2Auth. API कुंजी, बियरर, बेसिक, OAuth 2.0 HMAC या एक कस्टम क्लाइंट।
3टेस्ट पैकेजिंग से पहले बाध्य कनेक्शन सेटिंग्स को मान्य करें।
4कार्य मानचित्र नामित संचालन, पैरामीटर, गुंजाइश और जोखिम।
5ट्रिगर। इनबाउंड इवेंट्स, वेबहुक, मतदान और सिंक व्यवहार को घोषित करना।
6समीक्षा उत्पन्न अनुबंध का निरीक्षण करें और रिलीज गेट पास करें।
जहाज से पहले टेस्ट करें

सुरक्षित रूप से मान्य, फिर रिलीज गेट पास करें।

उपयोग dry_run समर्थित लिखने के कार्यों पर, बिल्डर की बाध्य कनेक्शन परीक्षण चलाएं और रिलीज से पहले उत्पन्न प्रकटन और अनुबंध का निरीक्षण करें। पैकेज सत्यापन क्षमता नामों, सेटिंग्स, सिद्धि और आवश्यक फ़ाइलों को जांचता है; पृष्ठभूमि कार्यकर्ता प्रतिक्रियाशील मतदान और आउटबाउंड डिलीवरी संभालते हैं।

ड्राई रन लिखते हैं बाउंड कनेक्शन परीक्षण अनुबंध अनुरूपता क्रोन संचालित प्रसव
php
कक्षा AmeConnector विस्तार AbstractConnector { सार्वजनिक समारोह स्लग (): तार { वापसी Ame's 'acme'; } सार्वजनिक समारोह नाम (): तार { वापसी ACMe; } सार्वजनिक समारोह वर्णन (): तार { वापसी 'Acme' पुल; } // उपयोग नामों से कनेक्टर सार्वजनिक समारोह क्षमताओं (): सरणी { वापसी ['actions', 'वेबहुक']; } सार्वजनिक समारोह सेटिंग्स स्कीमा (): सरणी { वापसी [['की' => 'token', 'type' => 'पासवर्ड']]; } सार्वजनिक समारोह परीक्षण कनेक्शन()सरणी $settings): सरणी { वापसी ['success' => सच]; } सार्वजनिक समारोह संभालती है Webhook() सरणी $payload, सरणी $headers, सरणी $settings ): सरणी { वापसी ['success' => सच]; } }
01 · Connector contract 2.4

एक पैकेज की क्षमता का दावा नहीं कर सकता इसके कोड में नहीं है।

OpsIQ\Connectors\ConnectorContract प्राधिकरण है। रनटाइम खोज, बिल्डर, प्रथम-पार्टी पैकेज, अनुरूपता, जनरल API प्रत्येक संदर्भ में पढ़ा जाता है कि एक रजिस्ट्री। एक क्षमता की घोषणा करें और तीन फाइलों को पहले से ही एक दूसरे के साथ सहमत होना चाहिए। OpsIQ आप के लिए एक पंक्ति मार्ग है।

FIG. 01_कनेक्टर पैकेज, भागों प्रकट scale 1:1 · contract 2.4
  1. 01 connector.php रनटाइम क्लास
  2. 02 IdentityProvider.php स्थिर बाहरी कुंजी
  3. 03 SalesIngest.php (concileSales)
  4. 04 actions.json नाम का संचालन
  5. 05 settings.json ऑपरेटर विन्यास
  6. 06 connector_contract.json मशीन पठनीय प्राधिकरण
07 signature.json एक HMAC SHA- पर256 ऊपर प्रत्येक फ़ाइल के साथ-साथ मूल का ed25519 प्रमाण
क्षमता मैट्रिक्स all 57, as registered
क्रिया ट्रिगर वेबहुक journey_events संदर्भ guest_lookup पहचान sales sales_reconciliation बिलिंग payments वाणिज्य inbound_ticket outbound_reply ticket_merge sync_users sync_departments sync_orders sync_products sync_projects customer_import security_events security_native_block survey reply_feedback promo_audience promo_feed email_mailbox inbound_email outbound_email mailbox ai_tickets ai_reply ai_brain_aware native_api platform_bridge native_data chrong block_registry inbound_comment outbound_note outbound_notification oauth reviews स्थानीय सू site_intelligence एनालिटिक्स comms admin_assets enterprise_hooks durable_queue ticket_mirror attachment_bridge database_migrations scheduled_workers conflict_resolution
उत्पन्न 30 घोषणा 20 विस्तार 7
दो हस्ताक्षर, दो सवाल।

hmac-sha256 प्रति फ़ाइल SHA- का एक निश्चित पेलोड पर256 उत्तर है यह संकेत के बाद से संशोधित किया गया हैAnne ed25519 हस्ताक्षर जवाब यह Nabtech_, बंडल सार्वजनिक कुंजी के साथ चेक करने योग्य और कोई साझा रहस्य नहीं है। एक बाइट और पहला स्टॉप मिलान संपादित करें।

marketplace.json परिभाषा के अनुसार हस्ताक्षर से बाहर है: इंस्टॉलर ने साइन इन करने के बाद इसे लिखा, इसलिए प्रकाशक ने कभी भी इस पर हस्ताक्षर नहीं किया।
02 · उपकरण/mutation_proof.php

कभी असफल नहीं हुआ यह साबित नहीं हुआ है।

ग्रीन टेस्ट आपको आज कुछ भी नहीं टूटते। वे आपको बता नहीं देते कि आपने लिखा था गार्ड उस चीज़ को रोक देगा जिसे इसे रोकने के लिए लिखा गया था, क्योंकि एक गार्ड जो कभी भी व्यायाम नहीं किया जाता है वह बिल्कुल उसी तरह से गुजरता है जो कुछ नहीं करता है। इसलिए हम अपने दिल को उद्देश्य पर रोकते हैं और मांग करते हैं कि मॉनिटर चिल्लाती है।

गार्ड · पढ़ने की भूमिका को विनाशकारी संचालन से इनकार करना चाहिए CH1 verify_commerce_contracts
src/Connectors/CommerceRoleMapVerifier.php Mutated
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    }
वास्तव में एक पाठ्य मिलान की आवश्यकता है। शून्य मैच, या दो और सबूत बंद होने से पहले यह झूठ सकता है।
$ php tools/mutation_proof.php --spec=proofs.json
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.
एक असफल प्रमाण है कभी नहीं दर्ज की गई। सबूत यह है कि एक जांच गलत हो गयी, यह स्पष्ट नहीं है कि गार्ड काम करता है।

कभी भी लागू नहीं होता।

खोज पाठ मिलान नहीं किया, फ़ाइल को बिना किसी चीज से जोड़ा गया था, सूट पारित हो गया और रिकॉर्ड किए गए सबूत पुराने कोड के तहत ग्रीन कोड के बारे में जो कभी पुराना नहीं था। वास्तव में एक पाठ्य मैच की आवश्यकता होती है और फ़ाइल हेश की तुलना किसी भी पक्ष में की जाती है।

उत्परिवर्तन कुछ और तोड़ दिया।

सूट लाल हो गया क्योंकि फ़ाइल बंद कर दिया गया है या बूटस्ट्रैप मर गया, और सबूत एक लाल दर्ज की जो गार्ड के साथ कुछ नहीं था। उत्परिवर्ती को छोड़ने से पकड़ लिया और आवश्यकता पड़ने पर पकड़ा गया नाम असफलता के बीच परीक्षण।

यह डिस्क पर एक mutant छोड़ नहीं सकता है।

हर उत्परिवर्तन मूल को वेब-सर्वेड ट्री के बाहर एक साइडकार की प्रतिलिपि बनाता है, उत्कृष्ट परिवर्तन का नामकरण करने वाले मार्कर लिखते हैं और प्रत्येक निकास पथ पर शटडाउन हैंडलर द्वारा undone किया जाता है। उस फ़ाइल के अगले उत्परिवर्तन से पहले दुर्घटनाग्रस्त रन से मार्कर सम्मानित किया जाता हैं।

03 · अनुरूपता

प्रमाणन एक आदेश है एक निकास कोड के साथ।

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/ कवर सेटिंग्स, कार्य, बिल्डर चश्मा, यात्रा और वाणिज्य घटना मैपिंग्स, वर्कफ़्लो व्यंजनों, कनेक्टर अनुबंधों और रिलीज प्रकट होता है।

  1. manifests पार्सेय और एक दूसरे के साथ सहमत
  2. क्षमताओं रनटाइम क्लास पर मौजूद
  3. interfaces जहां घोषणा की
  4. files हर आवश्यक फ़ाइल मौजूद
  5. क्रिया कार्रवाई प्रकट करने से मेल खाते हैं
  6. destructive पुष्टि की घोषणा
  7. पहचान एक स्थिर बाहरी कुंजी, ईमेल नहीं
  8. खेलना दोहराने की अद्यतनता कभी डुप्लिकेट नहीं होती
  9. उद्यम घोषणाएं विस्तार से मेल खाती हैं
  10. doc README, DEVELOPER, CHANGELOG
  11. स्कीमा हर JSON मान्यता
निकास 0 acme: conformant against contract 2.4 एक असफल सूट चेक और फ़ाइल नाम है। आप इसे ठीक करते हैं, हमें नहीं।
$ 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: यह एक लापता हस्ताक्षर को एक उम्मीद की चेतावनी के रूप में मानता है, बजाय यह दिखाने के लिए ठीक है।

04 · commerce_roles.json

क्या आप बेच सकते हैं घोषणा एक फ़ाइल है, पंजीकरण नहीं।

एक कनेक्टर जो घोषणा करता है कि किससे बेच सकता है खुद संचालन उत्तर OpsIQ के कैनोनिकल वाणिज्य भूमिकाएं। फ़ाइल की उपस्थिति दावा है। यह विक्रय सेटिंग्स में दिखाई देता है जब वह रुक जाता है तब वह घोषणा करता है और गायब हो जाता है। इसमें शामिल होने की कोई सूची नहीं है और पूछने के लिए कोई भी नहीं है।

अनौपचारिक भूमिका commerce_roles.json आपका संचालन
catalog_search READ acme_search_products ठीक order_get READ acme_get_order ठीक order_create WRITE acme_create_order recovery: acme_get_order order_create WRITE db_insert_record सामान्य रिकॉर्ड लिखने, कोई वसूली नहीं
REFUSED

एक canonical लिखना भूमिका एक सामान्य रिकॉर्ड लिखने के लिए मैप किया गया। मैच संरचनात्मक है: एक भंडारण दोपहर एक mutating क्रिया, जो भी अपने नामकरण सम्मेलन के बगल में। व्यापार पंक्ति प्रत्यक्ष लेखन मंच के मूल्य निर्धारण, उपलब्धता लॉकिंग और पुष्टि मेल छोड़ देता है, और एक आदेश का उत्पादन व्यापारी की अपनी प्रणाली केवल आधा में विश्वास करता है। नहीं कोई भी अपने नामांकित कन्वेंशन के अलावा, कोई भी विकल्प नहीं है। recovery तो एक समय-समय पर असुरक्षित होगा।

commerce_roles.jsonवालिद
{
  "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इसलिए एक हाथ से अधिकृत ब्लॉक वहाँ वैधीकरण विफल हो जाएगा और फिर अगले जनरेटर रन पर ओवरराइट किया जा सकता है।
01
बंद शब्दावली

नहीं CommerceRole वहाँ मौजूद नहीं है। OpsIQ कभी भी किसी ऑपरेशन नाम से एक को पसंद नहीं करता, क्योंकि कोई नाम वादा नहीं होता।

02
आपकी खुद की कार्रवाई

आपके ऑपरेशन में होना चाहिए actions.jsonTo घोषणा करना कि वह मौजूद नहीं है ग्राहक को कुछ ऐसा वादा करता है जो तब कुछ भी उत्पन्न नहीं होता।

03
लेखक ने वसूली की घोषणा की

सबसे खतरनाक टाइमआउट प्लेटफॉर्म के बाद पहले से ही काम किया जा सकता है। एक idempotent "मेरे लिखने वाली भूमि" लुकअप के बिना, एकमात्र विकल्प अंधेरे हैं या ऑर्डर खो देते हैं।

04
भुगतान की भूमिका प्रमाणित

किसी भी भुगतान वर्ग की भूमिका को भी घोषित किया गया है payment_profile साथ वातावरण, webhook_verify प्रदाता की अपनी योजना का उपयोग करके और event_mapएक अस्थाई वातावरण यह है कि कैसे एक परीक्षण मोड प्रदाता को लाइव भुगतान मिलता है।

बिल्डर ने इन्हें आपके प्रकार के रूप में प्रमाणित किया है और वेरिफायर भेजी गई पैकेज को मान्य करते हैं। दोनों ही समान कार्य कहते हैं, इसलिए वे असहमत नहीं हो सकते।
⚖️यह कैसे तुलना करता है

OpsIQ बनाम एक DIY एकीकरण।

अनुबंध के साथ, हस्ताक्षर किए गए, लेखापरीक्षित मंच आपको देता है कि अपने स्वयं के वेबहुक को रोल करना और एआई-एक्शन प्लंबिंग कभी नहीं होगा।

क्षमताअपना खुद का रोलOpsIQ
स्कोप्ड बियरर API + HMAC-signed webhooks हाथ से लुढ़का
ड्राई रन लिखते हैं + 24_- घंटे सफल पुनः खेलना DIY
1m → 5m → 30m →2h → 12h रिटारी DIY कतार
एक्शन-संविदा रजिस्ट्री (AI कॉल को आविष्कार नहीं कर सकता)
साइड-इफेक्ट्स से पहले पुष्टिकरण नीति
स्थिर त्रुटि लिफाफे + अनुरोध ID मैनुअल लॉगिंग
प्रत्यक्ष HTTP + उत्पन्न क्लाइंट विकल्प अपना खुद का लिखना
ओपनएपीआई 3.0.3 मशीन पठनीय अनुबंध शायद
छह चरण बिल्डर + पैकेज रिलीज गेट एक टूलचेन बनाएँ
कार्यक्षेत्र-pinned कुंजी और घंटे की सीमा भिन्नता
कनेक्टर पैटर्न: प्लेटफॉर्म कोड पृथक रहता है
सामान्य

डेवलपर प्रश्न, जवाब देना

प्रमाणीकरण, अनुबंध, रिट्राइज़, क्लाइंट जनरेशन, सुरक्षित परीक्षण और कनेक्टर मॉडल, पहले उत्पादन अनुरोध से पहले।

General API calls send 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 अनुरेखित वितरण पहचानकर्ता के रूप में।
एक असफल प्रयास पृष्ठभूमि वितरण कतार में प्रवेश करता है। OpsIQ पर भरोसा1-मिनट 5-मिनट 30-मिनट2-घंटे और 12 डिलीवरी पहचानकर्ता को बनाए रखने और निदान के लिए इतिहास का प्रयास करते समय -घंटे की सीढ़ी।
कॉल करें JSON सीधे कार्रवाई की सतह, उत्पन्न पोस्टमैन संग्रह आयात करें, या OpenAPI से क्लाइंट उत्पन्न करें 3.0.3 PHP संदर्भ प्रेषकों और नोड / पाइथन एकीकरण ग्राहकों का समर्थन घटना और वेबहुक प्रवाह; वे अलग-अलग के बजाय सहायक हैंAPI अनुबंध।
उपयोग dry_run जिन कार्यों का निर्माण अनुबंध इसका समर्थन करता है, कनेक्टर बिल्डर के बाध्य कनेक्शन परीक्षण को चलाते हैं, अपनी उत्पन्न फ़ाइलों का निरीक्षण करते हैं और कनेक्टर को तैयार करने से पहले पैकेज अनुरूपता और रिलीज गेट्स पास करते हैं।
स्थापित रिलीज इसके उत्पन्न करता है API और कनेक्टर अपने स्वयं के रनटाइम रजिस्ट्री से अनुबंध करता है। आपकी तैनाती उसके सार्वजनिक स्वामित्व में है URL, रहस्य, भंडारण और क्रोन / कामगार, इसलिए क्लाउड वातावरण से ग्रहण किए जाने के बजाय स्थापित रिलीज के खिलाफ व्यवहार को सत्यापित किया जाना चाहिए।
एक कनेक्टर एक शासित पैकेज है जिसमें एडाप्टर होता है, settings.jsonवैकल्पिक actions.jsonएक उत्पन्न क्षमता अनुबंध, प्रलेखन और वैकल्पिक उद्यम एक्सटेंशन। छह चरण बिल्डर इसे इकट्ठा करता है; रजिस्ट्री को पता चलता है; अनुरूपता और रिलीज गेट्स इसे मान्य करते हैं।