Προγραμματιστής πλατφόρμας · Γενικά API · webhooks · connectors

Κάντε την πλατφόρμα σας - ΑΙ-χειροπρακτικό.

Call 2,418 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,418 contract actionsOpenAPI 3.0.3 + ΤαχυδρόμοςΠαράδοση webhook HMAC
Scoped request in
Υπογραφή webhook out → 200 Εντάξει.
Ζωντανά Δράση κομιστή → OpsIQ → υπογεγραμμένο webhook POST /api/v1.php Εξουσιοδότηση: Bearer { "action": "tickets.reply", "dry_run": true } VERIFY · RUN · ΕΛΕΓΧΟΣ κλειδί + χώρος εργασίας✓ πεδίο εφαρμογής + σύμβαση✓ ιχνηλατημένη αίτηση το τελικό σημείο webhook σας Χ...OpsIQ-Περίπτωση: εισιτήριο.επιπλέον επαλήθευση HMAC → λαβή 200 Εντάξει.
2,418με το όνομα Στρατηγός API δράσεις
69λιγότερο από τα όρια του περιβάλλοντος
dry_runεπικύρωση συμβάσεων εγγραφής πριν από την εκτέλεση
24hεπιτυχής επανάληψη idempotent-write
Ο κύκλος ζωής του αιτήματος

- Θα το κάνω. Υπογεγραμμένο γεγονός.

POST μια ενέργεια για /api/v1.php με το radided Bearer κλειδί. OpsIQ pins ο χώρος εργασίας, επικυρώνει τη σύμβαση δράσης και τις άδειες, στη συνέχεια εκτελεί ή ξηρό-runs αυτό. Συνδρομημένα κανονικά γεγονότα αφήνουν μέσα από μια HMAC-υπογεγραμμένη ουρά παράδοσης με ανιχνεύσιμες προσπάθειες και οριοθετημένες επαναλήψεις.

HMAC-SHA256 webhooks (στα Αγγλικά) - τα εισερχόμενα και εξερχόμενα ωφέλιμο φορτίο του webhook υπογράφονται πάνω από το ωμό σώμα, API καλεί αυθεντικότητα με ένα τηλεκατευθυνόμενο κλειδί.
Αυτόματες επαναφορτίσεις - απέτυχε παραδόσεις πίσω μακριά και να προσπαθήσουμε, με μια ταυτότητα παράδοσης μπορείτε να εντοπίσετε.
Εγγραφή με ασφάλεια αναπαραγωγής - επιτυχής idempoent γράφει επιστρέφει την ίδια απάντηση για 24 ώρες· ταυτόχρονα αντίγραφα μοιράζονται μία αξίωση.
Η εφαρμογή σας POST /api/v1.php Εξουσιοδότηση: Bearer Ιδεότητα_κλειδί: idem_31c7 VERIFY - RUN - ΕΛΕΓΧΟΣ Το τελικό σημείο σου POST /webhooks επαλήθευση HMAC 200 Εντάξει. κλειδί + χώρος εργασίας καθηλωμένος scope + role checked επικυρωμένη σύμβαση εκτέλεση ή εκτέλεση σε ξηρή κατάσταση ΥΠΟΓΡΑΦΗ ΠΑΡΟΧΗΣ WEBHOK { X-OpsIQ-Event: ticket.replied X-OpsIQ-Delivery: dlv_8f2a9 X-OpsIQ-Timestamp: 1786584362 X-OpsIQ-Signature: 9c4e0a7b... } Παραδίδεται
01 Αίτηση πομπού 02 χώρος εργασίας καρφιτσών 03 επικύρωση της σύμβασης 04 εκτέλεση ή εκτέλεση σε ξηρή κατάσταση 05 event υπογεγραμμένο από την ουρά
Γρήγορη εκκίνηση

Από το κλειδί στην ενσωμάτωση των κυβερνήσεων τρία βήματα.

Εκδίδετε ένα λιγότερο-κλειδί privilege, ανακαλύπτετε το δημιουργημένο συμβόλαιο, εκτελέστε μια εγγραφή, στη συνέχεια εγγραφείτε σε ένα webhook όταν η εφαρμογή σας χρειάζεται παράδοση γεγονότων φόντου.

Κονσόλα σύμβασηςΣυνδεδεμένο
ΓΕΝΙΚΕΣ API · που οδηγούν σε σύμβαση 1 · Δημιουργία κλειδιού opq_live_xxx · ένα πλήκτρο σκόπευσης 2 · Ανακαλύψτε τις συμβάσεις POST /api/v1.php · μετα.ενέργειες 3 · Επικύρωση μιας εγγραφής εισιτήρια.απαντηση · ξηρή_run: true 4 · Εγγραφή σε εκδηλώσεις εισιτήριο. replied · παράδοση HMAC
Εκτέλεσηdry_run → εγκεκριμένη εγγραφή, ίδια σύμβαση
01

Πάρε ένα κλειδί.

Εγγραφείτε και δημιουργήστε έναν προγραμματιζόμενο κομιστή API κλειδί (opq_…) στις ρυθμίσεις του προγραμματιστή και δίνουν σε κάθε ολοκλήρωση μόνο τις επιφάνειες που χρειάζεται.

02

Ανακαλύψτε & επικυρώστε

Ανάγνωση meta.actions, meta.action και meta.scopes· χρήση dry_run να επικυρώσει τις γραφές πριν την εκτέλεση.

03

Εκτέλεση & εγγραφής

Προσθέστε ένα κλειδί idempotency για τις εγγραφές, στη συνέχεια εγγραφείτε το τελικό σημείο σας στα κανονικά γεγονότα που χρειάζεται η εφαρμογή σας.

Πως ταιριάζει μεταξύ τους

Ένα μοτίβο σύνδεσης. Πέντε καθαροί πρωτόγονοι.

Οτιδήποτε συγκεκριμένο στην πλατφόρμα ζει σε ένα συνδετήρα. OpsIQ Ο πυρήνας παραμένει γενικός, η τεχνητή νοημοσύνη παραμένει προβλέψιμη και η ενσωμάτωσή σας παραμένει ελέγξιμη.

01
Ενεργοποιητές

Πες το. OpsIQ Τι συνέβη μόλις τώρα.

Οι συνδρομητές λαμβάνουν το γεγονός μέσω των καταχωρημένων κανόνων προτεραιότητας και παράδοσης.

Αναφορά γεγονότος
invoice.paid κανονικό γεγονός Εγκεφαλική AIζωντανό πλαίσιο κανόνεςπροτεραιότητα 20 καθρέπτηςΓράφω πρώτα webhook (φύλλο ιστού)υπογεγραμμένη
Καθολικές + προσαρμοσμένες εκδηλώσειςinvoice.paid, ticket.created, subscription.cancelled, customer.signed_up Ή το δικό σου. Συνδρομητές Fan-outΟ εγκέφαλος της τεχνητής νοημοσύνης, οι κανόνες αυτοματοποίησης, οι σύνδεσμοι καθρεφτών και τα τελικά σημεία webhook σας όλα αντιδρούν. Σειρά προτεραιότηταςΑποφασιστική αποστολή έτσι καθρέφτες γράφουν πριν ειδοποιήσει φωτιά.
02 / Συμβάσεις δράσης

Πες το. 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 / Υπογεγραμμένα webhooks

Σπρώξτε τα γεγονότα στο σωρό σας - με κρυπτογραφική απόδειξη.

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.

Προστασία επανάληψηςΑναγνωριστικό παράδοσης5-step back-off
Αναφορά webhook
επαλήθευση 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/ SDKs

Χρησιμοποιήστε απευθείας HTTP ή να δημιουργήσετε τον πελάτη που προτιμάτε.

Ο πλήρης στρατηγός.API δημοσιεύεται ως OpenAPI 3.0.3 και ταχυδρόμος. PHP αποστολέαι αναφοράς συν κόμβος και 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.",
    },
)
Άμεση JSON HTTP (HtTP)OpenAPI 3.0.3_Συλλογή ταχυδρόμουΒοηθοί για την ένταξη
05 / Το μοτίβο σύνδεσης

Φτιάξε μια φορά, σύνδεσε τα πάντα.

Ένας συνδετήρας είναι ένα ρυθμιζόμενο πακέτο που παράγεται ή εισάγεται μέσω της Ταυτότητας, της Οθόνης, του τεστ, των ενεργειών, των ενεργοποιητών και της αναθεώρησης. OpsIQ επιτρέπεται να εκτεθεί.

Ανοίξτε το έξι-στάδιο Builder
Έξι καθοδηγούμενα στάδιαΤαυτότητα, Αυθ, δοκιμή, ενέργειες, ενεργοποιητές και κριτική διατηρούν τη δημιουργία πακέτου εξηγήσιμη. Με βάση τη σύμβαση8 profiles and 57 capability types declare the surfaces a package implements. ΑποδεσμεύεταιΗ ασφάλεια, η προέλευση και η συμμόρφωση διενεργούνται πριν από την επεξεργασία ενός πακέτου ως έτοιμο.
Από πρόθεση σε ασφαλή δράση

Απλά αγγλικά μέσα. Η ελεγκτική επιχείρηση τελείωσε.

OpsIQ δεν εφευρίσκει ποτέ τη σωστή κλήση. Περπατά μέσα από τα καταχωρημένα συμβόλαια, προετοιμάζει το ωφέλιμο φορτίο, ζητά επιβεβαίωση όταν η ενέργεια το απαιτεί, και παράγει μια πλήρη σειρά ελέγχου όταν εκτελεί, έτσι ώστε μια AI που μπορεί να πράξη Ποτέ δεν γίνεται μια Αλ που δεν μπορείς να εμπιστευτείς.

- Συμβόλαιο. Η τεχνητή νοημοσύνη προτείνει μόνο τις ενέργειες που έχετε καταχωρήσει.
Επιβεβαιώστε πριν τις παρενέργειες. Οι επικίνδυνες ενέργειες εμφανίζονται πρώτα σε μια κάρτα προεπισκόπησης.
Πλήρης ανάκληση. Κάθε άμεση, αντίδραση και δράση έχει ως αποτέλεσμα την AI History.
4 βήματαπρόθεση → έλεγχος
HMAC (ΗΠΑΚ)υπογεγραμμένη πριν από την εκτέλεση
"refund Adam's last invoice" Βήμα 1 · επίλυση πρόθεσης → ταιριαστό: saas. refund_invoice επιφάνεια: admin · ρόλος: ιδιοκτήτης · Βήμα 2 επικύρωση Βήμα 3 · Επιβεβαίωση & υπογραφή κάρτα προεπισκόπησης · τιμολόγιο #8421 Επιβεβαίωση Βήμα 4 · Σειρά ελέγχου ηθοποιός · άμεση · αποτέλεσμα · 412ms Ιδιοκτήτης μόνο · εξάγεται ως CSV
Δεν επινοήθηκαν κλήσεις.μόνο μητρώο σύμβασης
Επιβεβαιώνεται η πύληπροεπισκόπηση πριν από τις παρενέργειες
Αιτούμαι ιχνογράφησηςηθοποιός + συμβόλαιο + αποτέλεσμα
Βάση

API επιφάνεια Με μια ματιά.

One JSON POST surface exposes 2,418 named actions. Each generated contract declares auth scopes, read/write kind, risk, confirmation, request schema, dry-run, idempotency and stable errors.

OpenAPI 3.0.3 παραπομπή
ΔράσηΑυθΑσφάλεια εγγραφήςΌριο
Εγγραφή ενεργειώνΠΟΣΤΟ /api/v1.php · επικυρωμένο συμβόλαιο
ACTION tickets.replytickets.writeξηρή_ εκτέλεση + ιδεαδυναμίαConfigured / hour
ACTION security.reportsecurity.writeξηρή_ εκτέλεση + ιδεαδυναμίαConfigured / hour
ACTION platform.routes.writeτο adminεπιβεβαίωση + κλειδίConfigured / hour
Αναγνώριση & ενεργειώνΊδια επιφάνεια POST · σταθεροί φάκελοι
ACTION meta.actionsΔημόσια ανακάλυψηΜόνο για ανάγνωσηConfigured / hour
ACTION tickets.listtickets.readΜόνο για ανάγνωσηConfigured / hour
ACTION connectors.listconnectors.readΜόνο για ανάγνωσηConfigured / hour
Δράσεις PeopleOS HRΘεραπευμένη hr.* συμβάσεις · hr.read / hr.write Περιβλήματα
ACTION hr.people.listhr.readΜόνο για ανάγνωσηConfigured / hour
ACTION hr.people.createhr.writeξηρή_ εκτέλεση + ιδεαδυναμίαConfigured / hour
ACTION hr.org.treehr.readΜόνο για ανάγνωσηConfigured / hour
Το PeopleOS HR δεν στέλνει outbound HR webhook events. Φτάσε το μέσω της ίδιας επιφάνειας POST, ή εγγραφείς στα γεγονότα που δημοσιεύουν άλλες ενότητες. Πλήρης αναφορά: Ανθρώπινο δυναμικό API και συνδετήρες και η Τμήμα PeopleOS της αναφοράς του προγραμματιστήΗ μονάδα είναι φραγμένη, οπότε ένα κλειδί χωρίς hr παίρνει μια άρνηση, όχι μια άδεια λίστα. Τι είναι το PeopleOS HR.

Τα όρια τιμών ρυθμίζονται ανά πλήκτρο σε ένα ωριαίο παράθυρο. X-RateLimit-Limit, X-RateLimit-Remaining και X-RateLimit-Reset· απόρριψη των αποδόσεων της αίτησης 429 με Retry-After- Χρησιμοποίησε το Σύμβαση OpenAPI 3.0.3 ή Συλλογή ταχυδρόμου που παράγονται από τα ίδια μητρώα χρόνου εκτέλεσης.

Κατασκευή ενός συνδετήρα

Κατασκευή, δοκιμή και απελευθέρωση έξι στάδια.

Ξεκινήστε από ένα κυβερνώμενο προφίλ ή ορίστε ο ίδιος τη σύμβαση. Ο Οικοδόμος επικυρώνει κάθε στάδιο πριν δημιουργήσει ένα αυτοτελές πακέτο σύνδεσης.

1Ταυτότητα. Όνομα, γυμνοσάλιαγκας, προφίλ και δηλωμένες επιφάνειες ικανότητας.
2Ωθ. API Κλειδί, Bearer, Basic, OAuth 2.0, HMAC ή ένας προσαρμοσμένος πελάτης.
3Δοκιμή. Επικύρωση των ρυθμίσεων σύνδεσης πριν από τη συσκευασία.
4Ενέργειες. Χάρτης με ονομασία λειτουργίες, παράμετροι, πεδία και κίνδυνος.
5- Ψεκαστήρες. Δηλώστε εισερχόμενα γεγονότα, webhooks, δημοσκόπηση και συγχρονισμό συμπεριφοράς.
6Επανεξέταση. Ελέγξτε το συμβόλαιο και περάστε την πύλη απελευθέρωσης.
Δοκιμή πριν από το πλοίο

Επιβεβαιώστε με ασφάλεια, και μετά περάστε την πύλη απελευθέρωσης.

Χρήση dry_run σχετικά με υποστηριζόμενες ενέργειες εγγραφής, εκτελέστε το καθορισμένο τεστ σύνδεσης του Builder και επιθεωρήστε το παραγόμενο δηλωτικό και σύμβαση πριν από την απελευθέρωση.

Το \"Dry-run\" γράφει Δοκιμή σύνδεσης με όρια Συμμόρφωση με τη σύμβαση Παράδοση με βάση το Cron
connector. php · php
κλάση AcmeConnector επέκταση AbstractConnector { δημόσια λειτουργία γυμνοσάλιαγκας (): συμβολοσειρά { επιστροφή \"Άκμη\"; } δημόσια λειτουργία όνομα(): συμβολοσειρά { επιστροφή \"Ακμή\"; } δημόσια λειτουργία περιγραφή(): συμβολοσειρά { επιστροφή \"Γεφυριά του Άκμε\"; } // Χρήση ονομάτων από ConnectorConnectorConstract δημόσια λειτουργία ικανότητες (): συστοιχία { επιστροφή [«ενέργειες», 'Γουίμπχουκ']; } δημόσια λειτουργία settingsSchema(): συστοιχία { επιστροφή [['κλειδί' => 'Δοχείο', 'τύπος' => \"Λόγος\"]]; } δημόσια λειτουργία ΔοκιμήΣύνδεση(συστοιχία $settings): συστοιχία { επιστροφή [«επιτυχία» => αλήθεια]; } δημόσια λειτουργία handleWebhook( συστοιχία $payload, συστοιχία $headers, συστοιχία $settings ): συστοιχία { επιστροφή [«επιτυχία» => αλήθεια]; } }
01 · Connector contract 2.4

Ένα πακέτο δεν μπορεί να διεκδικήσει μια ικανότητα Ο κωδικός του δεν έχει.

OpsIQ\Connectors\ConnectorContract Η ανακάλυψη του χρόνου, ο οικοδόμος, τα πακέτα πρώτου μέρους, η συμμόρφωση, το Γενικό API δηλώστε μια ικανότητα και τρία αρχεία πρέπει να συμφωνήσουν μεταξύ τους πριν OpsIQ Οδεύουμε σε μια μόνο σειρά για σένα.

ΓΕΓΟΝΟΣ. 01Πακέτο συνδετήρων, δηλωτικό μερών scale 1:1 · contract 2.4
  1. 01 connector.php η τάξη του χρόνου εκτέλεσης
  2. 02 IdentityProvider.php σταθερό εξωτερικό κλειδί
  3. 03 SalesIngest.php συμφιλιώστε τις πωλήσεις()
  4. 04 actions.json Ονομαστικές λειτουργίες
  5. 05 settings.json διαμόρφωση του φορέα εκμετάλλευσης
  6. 06 connector_contract.json μηχανοαναγνώσιμη αρχή
07 signature.json ένα HMAC πάνω από ένα SHA-256 κάθε φακέλου που αναφέρεται ανωτέρω, συν ένα πιστοποιητικό καταγωγής ed25519
Πίνακας ικανότητας all 57, as registered
δράσεις ενεργοποιήσεις webhook (φύλλο ιστού) 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 ρμ 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 απαντήσεις hashes έχει τροποποιηθεί από την υπογραφή- Και ed25519 απαντήσεις υπογραφής Ήταν υπογεγραμμένο από τον Nabtech, checkable με το πακέτο δημόσιο κλειδί και κανένα κοινό μυστικό. Επεξεργασία ενός byte και η πρώτη στάση ταιριάζουν.

marketplace.json είναι εκτός της υπογραφής εξ ορισμού: ο εγκαταστάτης το γράφει μετά την υπογραφή, έτσι ώστε ο εκδότης δεν θα μπορούσε ποτέ να το υπογράψει.
02 · εργαλεία/μετάλλαξη_απόδειξη. php

Ένας φρουρός που δεν απέτυχε ποτέ. είναι αναπόδεικτο.

Οι πράσινοι έλεγχοι δεν σας λένε τίποτα έσπασε σήμερα. Δεν σας λένε ο φύλακας που γράψατε θα σταματήσει το πράγμα γράφτηκε για να σταματήσει, επειδή ένας φρουρός που ποτέ δεν ασκείται περνά ακριβώς σαν ένα φύλακα που δεν κάνει τίποτα. Έτσι σταματάμε την καρδιά του επίτηδες, και απαιτούν ότι η οθόνη ουρλιάζει.

φύλακας · ο αναγνωσμένος ρόλος πρέπει να αρνηθεί μια καταστροφική επιχείρηση CH1 verify_commerce_contracts
src/Connectors/CommerceRoleMapVerifier.php ΤΥΠΟΠΟΙΗΜΕΝΗ
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.
Μια αποτυχημένη απόδειξη είναι Ποτέ Τα στοιχεία ότι μια επιταγή πήγε στραβά δεν είναι απόδειξη ότι ένας φρουρός δουλεύει.

Η μετάλλαξη δεν εφαρμόστηκε ποτέ.

Το κείμενο αναζήτησης δεν ταιριάζει, το αρχείο ήταν ανέγγιχτο, η σουίτα πέρασε και η απόδειξη καταγράφηκε πράσινο κάτω από τον παλιό κώδικα σχετικά με τον κώδικα που δεν ήταν ποτέ παλιό. Πιάστηκε απαιτώντας ακριβώς ένα textual ταίριασμα και σύγκριση hashes αρχείο κάθε πλευρά.

Η μετάλλαξη έσπασε κάτι άλλο.

Η σουίτα έγινε κόκκινη επειδή το αρχείο σταμάτησε να αναρροφά ή η παγίδα πέθανε, και η απόδειξη κατέγραψε ένα κόκκινο που δεν είχε καμία σχέση με τον φύλακα. όνομα δοκιμή μεταξύ των αποτυχιών.

Δεν μπορεί να αφήσει έναν μεταλλαγμένο στο δίσκο.

Κάθε μετάλλαξη αντιγράφει το πρωτότυπο σε ένα πλευρικό βαγόνι έξω από το δέντρο που εξυπηρετείται από τον ιστό, γράφει έναν δείκτη που κατονομάζει την εξαιρετική αλλαγή και αναιρείται από έναν χειριστή διακοπής λειτουργίας σε κάθε διαδρομή εξόδου.

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/ Καλύπτουν τις ρυθμίσεις, δράσεις, Builder specs, ταξίδια και εμπορικές χαρτογραφήσεις εκδηλώσεων, συνταγές ροής εργασίας, συμβάσεις σύνδεσης και δηλωτικά απελευθέρωσης.

  1. manifests parse και συμφωνούν μεταξύ τους
  2. ικανότητες υπάρχει στην τάξη του χρόνου εκτέλεσης
  3. interfaces που έχουν πραγματοποιηθεί, όταν δηλώνονται
  4. files κάθε απαιτούμενο αρχείο παρόν
  5. δράσεις ταίριασμα της δηλωτικής πράξης
  6. destructive δήλωση επιβεβαίωσης
  7. ταυτότητα ένα σταθερό εξωτερικό κλειδί, όχι email
  8. επανάληψη μια επαναλαμβανόμενη ενημέρωση, ποτέ δεν αναπαράγεται
  9. επιχείρηση δηλώσεις που ταιριάζουν με την επέκταση
  10. Γιατροί READ, DEVELOPER, ΑΛΛΑΓΗ
  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 · Εμπορικοί ρόλοι.json

Δηλώνοντας τι μπορείτε να πουλήσετε είναι ένα αρχείο, όχι μια καταχώρηση.

Ένας σύνδεσμος που μπορεί να πωλήσει δηλώσεις ποια από its own operations answer OpsIQ's canonical commerce roles. The presence of the file is the claim. It appears in the selling settings the moment it declares and disappears when it stops. There is no list to join and nobody to ask.

κανονικός ρόλος 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

Ένα κανονικό Γράφω role mapped to a generic record write. The match is structural: a storage noun beside a mutating verb, whatever your naming convention. Writing the business row direct skips the platform's pricing, availability locking and confirmation mail, and produces an order the merchant's own system only half believes in. No 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.json. Δηλώνοντας ένα που δεν υπάρχει υπόσχεται στον πελάτη κάτι που στη συνέχεια παράγει τίποτα.

03
Εγγραφή δήλωσης ανάκτησης

The most dangerous timeout is the one after the platform may already have done the work. Without an idempotent "did my write land" lookup, the only options are retry blind or lose the order.

04
Πιστοποιούν τους ρόλους πληρωμής

Κάθε ρόλος κλάσης πληρωμής δηλώνει επίσης payment_profile με το περιβάλλον, webhook_verify χρήση του συστήματος του ίδιου του παρόχου, και event_map. Ένα μη δηλωμένο περιβάλλον είναι το πώς ένας πάροχος test-mode παίρνει μια ζωντανή πληρωμή.

Ο κατασκευαστής επικυρώνει αυτά καθώς πληκτρολογείτε και ο ελεγκτής επικυρώνει το πακέτο που αποστέλλεται. Και οι δύο καλέστε τις ίδιες λειτουργίες, οπότε δεν μπορούν να διαφωνήσουν.
⚖️ Πώς συγκρίνεται

OpsIQ vs α DIY ενσωμάτωση.

Τι συμβόλαιο, υπογεγραμμένη, ελεγχόμενη πλατφόρμα σου δίνει ότι το να τραβάς τα δικά σου δικτυωτά και τα υδραυλικά AI-action δεν θα το κάνουν ποτέ.

ΙκανότηταΓύρνα το δικό σου.OpsIQ
Εμπορευματοκιβώτιο API + συνδετήρες με υπογραφή HMAC Που έχουν ελαθεί στο χέρι
Το dry-run γράφει + 24-hour επιτυχής επανάληψη DIY
1m → 5m → 30m → 2h → 12h retries DIY ουρά
Μητρώο συμβάσεων δράσης (το AI δεν μπορεί να εφεύρει κλήσεις)
Πολιτική επιβεβαίωσης πριν από τις παρενέργειες
Σταθερός φάκελος σφάλματος + ζητήστε ταυτότητες Χειροκίνητη καταγραφή
Άμεση επιλογή HTTP + δημιουργημένων πελατών Γράψε το δικό σου.
OpenAPI 3.0.3 σύμβαση αναγνώσιμη από μηχάνημα Ίσως.
Εξι σταδιοχτητής + πύλη απελευθέρωσης πακέτου Κατασκευή μιας αλυσίδας εργαλείων
Κλειδί με έλικα και ωριαία όρια Βάρη
Μοτίβο σύνδεσης: ο κώδικας πλατφόρμας παραμένει απομονωμένος
Συχνές ερωτήσεις

Ερωτήσεις προγραμματιστή, Απάντησε.

Ταυτοποίηση, συμβάσεις, επαναφορτίσεις, παραγωγή πελατών, ασφαλείς δοκιμές και το μοντέλο σύνδεσης, πριν από την πρώτη αίτηση παραγωγής.

Γενικά API αποστολή κλήσεων Authorization: Bearer opq_…Τα κλειδιά μπορούν να είναι χωρίς περιορισμούς, περιορισμένα ή μόνο για ανάγνωση, μεταφέρουν τα λιγότερο-αρχηγικά πεδία, υπακούουν σε ωριαία όρια και μπορούν να καρφωθούν σε ένα χώρο εργασίας. X-OpsIQ-Signature, X-OpsIQ-Timestamp, X-OpsIQ-Event και X-OpsIQ-Delivery.
Όχι. Η AI μπορεί να προτείνει μόνο τις ονομαζόμενες λειτουργίες στο μητρώο δράσης. Κάθε σύμβαση που δημιουργείται δηλώνει πεδίο εφαρμογής, πεδία αίτησης, πολιτική κινδύνου και επιβεβαίωσης· οι πράξεις των οποίων η πολιτική απαιτεί επιβεβαίωση επικαλύπτονται σε μια ανθρώπινη προεπισκόπηση πριν από την εκτέλεση.
Επαναφορά hash_hmac('sha256', $rawBody, $secret) και να συγκρίνουν την δεκαεξαδική χωνεμένη με X-OpsIQ-Signature με hash_equals. Επικύρωση X-OpsIQ-Timestamp μέσα στο παράθυρο αναπαραγωγής και χρήση X-OpsIQ-Delivery ως αναγνωριστικό της παραδόσεως που μπορεί να ανιχνευθεί.
A non-successful attempt enters the background delivery queue. OpsIQ retries on the 1-minute, 5-minute, 30-minute, 2-hour and 12-hour ladder while retaining the delivery identifier and attempt history for diagnostics.
Φώναξε την JSON επιφάνεια δράσης άμεσα, εισαγωγή της παραγόμενης συλλογής ταχυδρόμων ή δημιουργία πελάτη από το OpenAPI 3.0.3. PHP αποστολέαι αναφοράς και κόμβος / Python Ολοκληρώνοντας τους πελάτες υποστηρίζουν γεγονότα και ροές webhook? Είναι βοηθοί αντί ξεχωριστό API συμβόλαια.
Χρήση dry_run σχετικά με ενέργειες των οποίων η σύμβαση την υποστηρίζει, εκτελέστε τη δοκιμή σύνδεσης του Connector Builder, επιθεωρήστε τα δημιουργημένα αρχεία του και περάστε τις πύλες συμμόρφωσης και απελευθέρωσης πακέτου πριν αντιμετωπίσετε το συνδετήρα ως έτοιμο.
Η εγκατεστημένη απελευθέρωση παράγει API και συμβόλαια σύνδεσης από τα δικά του μητρώα χρόνου λειτουργίας. URL, μυστικά, αποθήκευση και cron/εργαζόμενοι, έτσι η συμπεριφορά θα πρέπει να επαληθεύεται κατά την εγκατεστημένη απελευθέρωση παρά να θεωρείται από ένα περιβάλλον σύννεφο.
Ένας σύνδεσμος είναι ένα ρυθμιζόμενο πακέτο που περιέχει τον προσαρμογέα, settings.json, προαιρετικό actions.json, μια παραγόμενη σύμβαση ικανότητας, τεκμηρίωση και προαιρετική επέκταση επιχειρήσεων. Ο κατασκευαστής έξι σταδίων το συναρμολογεί? το μητρώο ανακαλύπτει? συμμόρφωση και την απελευθέρωση πύλες επικυρώσει αυτό.