Направете своя платформа - Може да се оперира.
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 с оптичен ключ на Мечока. OpsIQ Закопчава работното пространство, утвърждава договора за действие и разрешенията, след което го изпълнява или изсушава HMAC-подписано доставка опашка с проследими опити и ограничени ретрита.
От ключ към регламентирана интеграция в три стъпки.
Издайте най-малко Privilege ключ, намерете генериран договор, сух запис, след това абонирайте уеб-кабина, когато вашето приложение се нуждае от доставка фоново събитие.
Вземи ключ.
Регистрирайте се и генерирайте обхватен Bearer API ключ (opq_…) в настройките на разработчиците и да даде всяка интеграция само повърхностите, които се нуждае.
& Откриване и утвърждаване
Четене meta.actions, meta.action както и meta.scopes; употреба dry_run да валидирате писанията преди екзекуцията.
Изпълнение на & абониране
Добавяне на ключ за нежеланост за писане, след това абонирайте крайната си точка за канонични събития, които трябва да кандидатствате.
Един конектор. Пет чисти примитивни.
Всичко определено за платформата живее в конектор. OpsIQ Ядрото остава общо, ИИ остава предсказуемо и интеграцията ви остава ревизия.
Кажи. OpsIQ какво се случи току що.
Излъчвайте канонични събития от вашата платформа или дефинирайте регулирано по поръчка събитие. Абонатите получават събитието чрез регистрираните правила за приоритет и доставка.
Справка за събитиетоinvoice.paid, ticket.created, subscription.cancelled, customer.signed_up или твоя собствена.
Абонати за развлекателни програмиAI мозъка, правилата за автоматизация, огледалните конектори и вашите уеб-кабини всички реагират.
Приоритетно нарежданеОгледалата пишат преди да се разпалят.
Кажи. 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 референтни податели плюс 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.",
},
)
Включи всичко.
Конекторът е управляван пакет, генериран или внесен чрез идентичност, Auth, Тест, Действия, Тригери и преглед OpsIQ е позволено да се изложи.
Отвори шестетапния строител.Влизаме на английски. Проверката приключи.
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.writedry_run + idempotentityНастройване / часACTION security.reportsecurity.writedry_run + idempotentityНастройване / час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.writedry_run + idempotentityНастройване / часACTION hr.org.treehr.readСамо за четенеНастройване / часhr получава отказ, не празен списък. Какво представлява PeopleOS HR.Границите на скоростта са конфигурирани за всеки ключ на почасов прозорец. X-RateLimit-Limit, X-RateLimit-Remaining както и X-RateLimit-Reset; отхвърлена молба връща 429 с Retry-After. Използвайте Отворен API 3.0.3 договор или Пощенска колекция генериран от същите регистри за движение.
Изграждане, изпитване и освобождаване в Шест етапа.
Започнете от регулиран профил или сам дефинирайте договора. Строителят утвърждава всеки етап, преди да генерира самостоятелен конекторен пакет.
Потвърди безопасно, след това мини през вратата.
Използване dry_run за подкрепяне на действия за писане, стартирайте теста за ограничена връзка на строителя и проверете генерирания манифест и договора преди пускането му. Имената на контролните пакети за валидиране на възможностите, настройките, произхода и необходимите файлове; фоновите работници се справят с реактивно проучване и изходяща доставка.
Пакетът не може да претендира за възможност Кодът му не е такъв.
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 отговори е променяно от подписването на споразумението. 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.
Мутацията никога не е прилагала.
Текстът на търсенето не съвпада, файлът е недокоснат, апартаментът е приет и доказателството записано зелено под стария код За код, който никога не е бил стар. Хванат чрез изисква точно един текстов мач и сравняване на файл hashes от двете страни.
Мутацията счупи нещо друго.
Апартаментът се е зачервил, защото файлът е спрял да се анализира или капана за ботушите е умрял и доказателството е записано в червено, което няма нищо общо с пазача. Име тест сред неуспехите.
Не може да остави мутант на диска.
Всяка мутация копира оригинала на кош извън уеб-служеното дърво, пише маркер имене на извънредна промяна, и е развален от изключване на manholder на всеки изход пътека. Маркер от разбито бягане се почита преди следващата мутация на този файл.
Сертифицирането е команда с код за изход.
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 спецификации, пътуване и търговски събития mappings, рецепти за работния процес, договори за конектори и освобождаване манифести.
- manifests Сподели и се съгласи един с друг
- възможности съществува в класа по време на бягане
- interfaces изпълнявано, когато е декларирано
- files всеки необходим файл, който е налице
- действия съвпада с манифеста за действията
- destructive декларация за потвърждение
- самоличност стабилен външен ключ, а не електронна поща
- повторение повтаряне на актуализациите, никога дублирани
- предприятие декларациите съответстват на разширението
- Докове ПРОЧЕТЕТЕ, РАЗВИТИ, ПРОМЕНЛИВ
- схеми Всеки 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_ каноничните търговски роли. Присъствието на файла е претенцията. Тя се появява в настройките за продажба в момента, в който декларира и изчезва, когато тя спре. Няма списък, към който да се присъедините и никой да поиска.
Каноникал weather forecast ролева карта на запис. Мачът е структуриран: съществително устройство за съхранение освен мутирал глагол, независимо от това, че сте се събрали на него. Писането на бизнес ред директно пропуска ценообразуването на платформата, заключване на наличността и потвърждение поща, и произвежда поръчка на собствената система търговец само половината вярва в. Не 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. Несъкратената среда е как доставчик на тест режим приема живо плащане.
OpsIQ спрямо a DIY интеграция.
Каква свързана с договора, подписана, одитирана платформа ви дава възможност да се въргаляте в собствените си уеб-hooks и AI-action водопровод никога няма да.
| Възможност | Снимайте си сам. | OpsIQ |
|---|---|---|
| Scoped Bearer API + HMAC-signed webhooks | С дебелина, превишаваща 0,10 mm | ✓ |
| Сухата писмена версия пише + 24-часово успешно повторение | ДИЙ | ✓ |
| 1m → 5m → 30 m → 2h → 12h Възвръщания | DIY опашка | ✓ |
| Регистър на договорите за действие (AI не може да изобрети повиквания) | — | ✓ |
| Политика за потвърждение преди странични ефекти | — | ✓ |
| Стабилна опаковка за грешка + заявки за самоличност | Ръчна сеч | ✓ |
| Директни HTTP + генерирани опции на клиенти | Напиши си сам. | ✓ |
| OpenAPI 3.0.3 договор за машинно четене | Може би. | ✓ |
| Шестетапен строител + пакетна врата | Изграждане на инструментна верига | ✓ |
| Ключове с вързано работно пространство и почасови ограничения | Различно | ✓ |
| Конекторен модел: кодът на платформата остава изолиран | — | ✓ |
Разработчиците задават въпроси. Отговори.
Автентичност, договори, ретрити, клиентско поколение, безопасно тестване и конектор модел, преди първото искане за производство.
Authorization: Bearer opq_…. Ключовете могат да бъдат неограничени, ограничени или само за четене, да носят най-малко privilege оптическите възможности, да се подчиняват на един час лимит и може да бъде прикачен към работно пространство. X-OpsIQ-Signature, X-OpsIQ-Timestamp, X-OpsIQ-Event както и X-OpsIQ-Delivery.hash_hmac('sha256', $rawBody, $secret) и да сравните шестопръстното му храносмилане с X-OpsIQ-Signature (800 mg / дневно) hash_equals. Валидно X-OpsIQ-Timestamp в рамките на прозореца за възпроизвеждане и употреба X-OpsIQ-Delivery като идентификатор на проследимата доставка.dry_run за действия, чийто генериран договор го поддържа, стартирайте теста на конектора за ограничена връзка, проверете генерираните файлове и преминете през опаковката конформация и освобождаване портите преди да третирате конекторът като готов.settings.json, по избор actions.jsonШестетапният строител го сглобява; регистърът го открива; конформността и освобождава портите го утвърждават.