Κάντε την πλατφόρμα σας - ΑΙ-χειροπρακτικό.
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.
- Θα το κάνω. Υπογεγραμμένο γεγονός.
POST μια ενέργεια για /api/v1.php με το radided Bearer κλειδί. OpsIQ pins ο χώρος εργασίας, επικυρώνει τη σύμβαση δράσης και τις άδειες, στη συνέχεια εκτελεί ή ξηρό-runs αυτό. Συνδρομημένα κανονικά γεγονότα αφήνουν μέσα από μια HMAC-υπογεγραμμένη ουρά παράδοσης με ανιχνεύσιμες προσπάθειες και οριοθετημένες επαναλήψεις.
Από το κλειδί στην ενσωμάτωση των κυβερνήσεων τρία βήματα.
Εκδίδετε ένα λιγότερο-κλειδί privilege, ανακαλύπτετε το δημιουργημένο συμβόλαιο, εκτελέστε μια εγγραφή, στη συνέχεια εγγραφείτε σε ένα webhook όταν η εφαρμογή σας χρειάζεται παράδοση γεγονότων φόντου.
Πάρε ένα κλειδί.
Εγγραφείτε και δημιουργήστε έναν προγραμματιζόμενο κομιστή API κλειδί (opq_…) στις ρυθμίσεις του προγραμματιστή και δίνουν σε κάθε ολοκλήρωση μόνο τις επιφάνειες που χρειάζεται.
Ανακαλύψτε & επικυρώστε
Ανάγνωση meta.actions, meta.action και meta.scopes· χρήση dry_run να επικυρώσει τις γραφές πριν την εκτέλεση.
Εκτέλεση & εγγραφής
Προσθέστε ένα κλειδί idempotency για τις εγγραφές, στη συνέχεια εγγραφείτε το τελικό σημείο σας στα κανονικά γεγονότα που χρειάζεται η εφαρμογή σας.
Ένα μοτίβο σύνδεσης. Πέντε καθαροί πρωτόγονοι.
Οτιδήποτε συγκεκριμένο στην πλατφόρμα ζει σε ένα συνδετήρα. OpsIQ Ο πυρήνας παραμένει γενικός, η τεχνητή νοημοσύνη παραμένει προβλέψιμη και η ενσωμάτωσή σας παραμένει ελέγξιμη.
Πες το. OpsIQ Τι συνέβη μόλις τώρα.
Οι συνδρομητές λαμβάνουν το γεγονός μέσω των καταχωρημένων κανόνων προτεραιότητας και παράδοσης.
Αναφορά γεγονότοςinvoice.paid, ticket.created, subscription.cancelled, customer.signed_up Ή το δικό σου.
Συνδρομητές Fan-outΟ εγκέφαλος της τεχνητής νοημοσύνης, οι κανόνες αυτοματοποίησης, οι σύνδεσμοι καθρεφτών και τα τελικά σημεία webhook σας όλα αντιδρούν.
Σειρά προτεραιότηταςΑποφασιστική αποστολή έτσι καθρέφτες γράφουν πριν ειδοποιήσει φωτιά.
Πες το. OpsIQ Τι επιτρέπεται να κάνει η τεχνητή νοημοσύνη.
Κάθε επιχείρηση που ονομάζεται λαμβάνει μια παραγόμενη σύμβαση: πεδίο εφαρμογής, χαρακτηριστικό, διαβασμένο ή γράψε είδος, κίνδυνο, πολιτική επιβεβαίωσης, το σχήμα αίτησης και απάντησης, υποστήριξη σε ξηρό, ιδεοδυναμία και σταθερά λάθη.
Σχήμα δράσης{
"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 αποστολέαι αναφοράς συν κόμβος και 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.",
},
)
Φτιάξε μια φορά, σύνδεσε τα πάντα.
Ένας συνδετήρας είναι ένα ρυθμιζόμενο πακέτο που παράγεται ή εισάγεται μέσω της Ταυτότητας, της Οθόνης, του τεστ, των ενεργειών, των ενεργοποιητών και της αναθεώρησης. OpsIQ επιτρέπεται να εκτεθεί.
Ανοίξτε το έξι-στάδιο BuilderΑπλά αγγλικά μέσα. Η ελεγκτική επιχείρηση τελείωσε.
OpsIQ δεν εφευρίσκει ποτέ τη σωστή κλήση. Περπατά μέσα από τα καταχωρημένα συμβόλαια, προετοιμάζει το ωφέλιμο φορτίο, ζητά επιβεβαίωση όταν η ενέργεια το απαιτεί, και παράγει μια πλήρη σειρά ελέγχου όταν εκτελεί, έτσι ώστε μια AI που μπορεί να πράξη Ποτέ δεν γίνεται μια Αλ που δεν μπορείς να εμπιστευτείς.
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.
ACTION tickets.replytickets.writeξηρή_ εκτέλεση + ιδεαδυναμίαConfigured / hourACTION security.reportsecurity.writeξηρή_ εκτέλεση + ιδεαδυναμίαConfigured / hourACTION platform.routes.writeτο adminεπιβεβαίωση + κλειδίConfigured / hourACTION meta.actionsΔημόσια ανακάλυψηΜόνο για ανάγνωσηConfigured / hourACTION tickets.listtickets.readΜόνο για ανάγνωσηConfigured / hourACTION connectors.listconnectors.readΜόνο για ανάγνωσηConfigured / hourhr.* συμβάσεις · hr.read / hr.write ΠεριβλήματαACTION hr.people.listhr.readΜόνο για ανάγνωσηConfigured / hourACTION hr.people.createhr.writeξηρή_ εκτέλεση + ιδεαδυναμίαConfigured / hourACTION hr.org.treehr.readΜόνο για ανάγνωσηConfigured / hourhr παίρνει μια άρνηση, όχι μια άδεια λίστα. Τι είναι το PeopleOS HR.Τα όρια τιμών ρυθμίζονται ανά πλήκτρο σε ένα ωριαίο παράθυρο. X-RateLimit-Limit, X-RateLimit-Remaining και X-RateLimit-Reset· απόρριψη των αποδόσεων της αίτησης 429 με Retry-After- Χρησιμοποίησε το Σύμβαση OpenAPI 3.0.3 ή Συλλογή ταχυδρόμου που παράγονται από τα ίδια μητρώα χρόνου εκτέλεσης.
Κατασκευή, δοκιμή και απελευθέρωση έξι στάδια.
Ξεκινήστε από ένα κυβερνώμενο προφίλ ή ορίστε ο ίδιος τη σύμβαση. Ο Οικοδόμος επικυρώνει κάθε στάδιο πριν δημιουργήσει ένα αυτοτελές πακέτο σύνδεσης.
Επιβεβαιώστε με ασφάλεια, και μετά περάστε την πύλη απελευθέρωσης.
Χρήση dry_run σχετικά με υποστηριζόμενες ενέργειες εγγραφής, εκτελέστε το καθορισμένο τεστ σύνδεσης του Builder και επιθεωρήστε το παραγόμενο δηλωτικό και σύμβαση πριν από την απελευθέρωση.
Ένα πακέτο δεν μπορεί να διεκδικήσει μια ικανότητα Ο κωδικός του δεν έχει.
OpsIQ\Connectors\ConnectorContract Η ανακάλυψη του χρόνου, ο οικοδόμος, τα πακέτα πρώτου μέρους, η συμμόρφωση, το Γενικό API δηλώστε μια ικανότητα και τρία αρχεία πρέπει να συμφωνήσουν μεταξύ τους πριν OpsIQ Οδεύουμε σε μια μόνο σειρά για σένα.
- 01 connector.php η τάξη του χρόνου εκτέλεσης
- 02 IdentityProvider.php σταθερό εξωτερικό κλειδί
- 03 SalesIngest.php συμφιλιώστε τις πωλήσεις()
- 04 actions.json Ονομαστικές λειτουργίες
- 05 settings.json διαμόρφωση του φορέα εκμετάλλευσης
- 06 connector_contract.json μηχανοαναγνώσιμη αρχή
hmac-sha256 πάνω από ένα ντετερμινιστικό ωφέλιμο φορτίο ανά αρχείο SHA-256 απαντήσεις hashes έχει τροποποιηθεί από την υπογραφή- Και ed25519 απαντήσεις υπογραφής Ήταν υπογεγραμμένο από τον Nabtech, checkable με το πακέτο δημόσιο κλειδί και κανένα κοινό μυστικό. Επεξεργασία ενός 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.
Η μετάλλαξη δεν εφαρμόστηκε ποτέ.
Το κείμενο αναζήτησης δεν ταιριάζει, το αρχείο ήταν ανέγγιχτο, η σουίτα πέρασε και η απόδειξη καταγράφηκε πράσινο κάτω από τον παλιό κώδικα σχετικά με τον κώδικα που δεν ήταν ποτέ παλιό. Πιάστηκε απαιτώντας ακριβώς ένα textual ταίριασμα και σύγκριση hashes αρχείο κάθε πλευρά.
Η μετάλλαξη έσπασε κάτι άλλο.
Η σουίτα έγινε κόκκινη επειδή το αρχείο σταμάτησε να αναρροφά ή η παγίδα πέθανε, και η απόδειξη κατέγραψε ένα κόκκινο που δεν είχε καμία σχέση με τον φύλακα. όνομα δοκιμή μεταξύ των αποτυχιών.
Δεν μπορεί να αφήσει έναν μεταλλαγμένο στο δίσκο.
Κάθε μετάλλαξη αντιγράφει το πρωτότυπο σε ένα πλευρικό βαγόνι έξω από το δέντρο που εξυπηρετείται από τον ιστό, γράφει έναν δείκτη που κατονομάζει την εξαιρετική αλλαγή και αναιρείται από έναν χειριστή διακοπής λειτουργίας σε κάθε διαδρομή εξόδου.
Η πιστοποίηση είναι μια εντολή με κωδικό εξόδου.
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, ταξίδια και εμπορικές χαρτογραφήσεις εκδηλώσεων, συνταγές ροής εργασίας, συμβάσεις σύνδεσης και δηλωτικά απελευθέρωσης.
- manifests parse και συμφωνούν μεταξύ τους
- ικανότητες υπάρχει στην τάξη του χρόνου εκτέλεσης
- interfaces που έχουν πραγματοποιηθεί, όταν δηλώνονται
- files κάθε απαιτούμενο αρχείο παρόν
- δράσεις ταίριασμα της δηλωτικής πράξης
- destructive δήλωση επιβεβαίωσης
- ταυτότητα ένα σταθερό εξωτερικό κλειδί, όχι email
- επανάληψη μια επαναλαμβανόμενη ενημέρωση, ποτέ δεν αναπαράγεται
- επιχείρηση δηλώσεις που ταιριάζουν με την επέκταση
- Γιατροί READ, DEVELOPER, ΑΛΛΑΓΗ
- Σχήματα κάθε 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: αντιμετωπίζει μια χαμένη υπογραφή ως αναμενόμενη προειδοποίηση αντί να προσποιείται ότι είναι εντάξει.
Δηλώνοντας τι μπορείτε να πουλήσετε είναι ένα αρχείο, όχι μια καταχώρηση.
Ένας σύνδεσμος που μπορεί να πωλήσει δηλώσεις ποια από 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.
Ένα κανονικό Γράφω 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": {
"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. Δηλώνοντας ένα που δεν υπάρχει υπόσχεται στον πελάτη κάτι που στη συνέχεια παράγει τίποτα.
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.
Κάθε ρόλος κλάσης πληρωμής δηλώνει επίσης 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 σύμβαση αναγνώσιμη από μηχάνημα | Ίσως. | ✓ |
| Εξι σταδιοχτητής + πύλη απελευθέρωσης πακέτου | Κατασκευή μιας αλυσίδας εργαλείων | ✓ |
| Κλειδί με έλικα και ωριαία όρια | Βάρη | ✓ |
| Μοτίβο σύνδεσης: ο κώδικας πλατφόρμας παραμένει απομονωμένος | — | ✓ |
Ερωτήσεις προγραμματιστή, Απάντησε.
Ταυτοποίηση, συμβάσεις, επαναφορτίσεις, παραγωγή πελατών, ασφαλείς δοκιμές και το μοντέλο σύνδεσης, πριν από την πρώτη αίτηση παραγωγής.
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 σχετικά με ενέργειες των οποίων η σύμβαση την υποστηρίζει, εκτελέστε τη δοκιμή σύνδεσης του Connector Builder, επιθεωρήστε τα δημιουργημένα αρχεία του και περάστε τις πύλες συμμόρφωσης και απελευθέρωσης πακέτου πριν αντιμετωπίσετε το συνδετήρα ως έτοιμο.settings.json, προαιρετικό actions.json, μια παραγόμενη σύμβαση ικανότητας, τεκμηρίωση και προαιρετική επέκταση επιχειρήσεων. Ο κατασκευαστής έξι σταδίων το συναρμολογεί? το μητρώο ανακαλύπτει? συμμόρφωση και την απελευθέρωση πύλες επικυρώσει αυτό.