Направете своя платформа Управляемо от AI.
Извиквайте 2,430 именувани операции през един API, генериран от договора, с обхвати с минимални права, обвързване с работното пространство, проверка на проба и записи, безопасни при повторение. Абонирайте се за каноничните събития чрез фонови webhook с HMAC подпис или изградете управляван пакет в шестстъпковия Connector Builder.
Включена е заявка. Подписан случай.
POST действие за /api/v1.php с ограничен Bearer ключ. OpsIQ фиксира работното пространство, валидира договора за действие и разрешенията, след което го изпълнява или го пуска като dry-run. Абонираните каноничните събития излизат през опашка за доставка, подписана с 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"] }
}
Натиснете събитията към стека си - с криптографски доказателства.
Абонирайте се с произволен URL за всяко от 53 доставяни събития. OpsIQ изпраща JSON товара чрез POST, подписан с HMAC-SHA256 върху версията на схемата, времевия печат, ID на доставката и тялото заедно, не само тялото, така че вчерашна доставка да не може да бъде повторена срещу вас днес.
$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 или генерирайте клиента, който предпочитате.
Пълният General 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.",
},
)
Включи всичко.
Конекторът е управляван пакет, генериран или внесен чрез идентичност, Auth, Тест, Действия, Тригери и преглед OpsIQ е позволено да се изложи.
Отвори шестетапния строител.Влизаме на английски. Проверката приключи.
OpsIQ никога не изобретява правилното обаждане. Тя минава през регистрираните договори, подготвя полезния товар, иска потвърждение кога действието го изисква и произвежда пълен одитен ред, когато изпълнява, така че един AI, който може да го изпълни действие Никога не ставаш Ал, на когото не можеш да вярваш.
API повърхност с поглед.
Една JSON POST повърхност предоставя 2,430 именувани действия. Всеки генериран договор декларира обхватите за удостоверяване, типа четене/запис, риска, потвърждението, схемата на заявката, пробното изпълнение, идемпотентността и стабилните грешки.
ACTION tickets.replytickets.writedry_run + идемпотентностНастройване / часACTION security.reportsecurity.writedry_run + идемпотентностНастройване / час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 + идемпотентностНастройване / часACTION hr.org.treehr.readСамо за четенеНастройване / часhr получава отказ, не празен списък. Какво представлява PeopleOS HR.Границите на скоростта са конфигурирани за всеки ключ на почасов прозорец. X-RateLimit-Limit, X-RateLimit-Remaining и X-RateLimit-Reset; отхвърлена молба връща 429 с Retry-After. Използвайте Отворен API 3.0.3 договор или Колекция от Postman генериран от същите регистри за движение.
Изграждане, изпитване и освобождаване в Шест етапа.
Започнете от регулиран профил или сам дефинирайте договора. Строителят утвърждава всеки етап, преди да генерира самостоятелен конекторен пакет.
Потвърди безопасно, след това мини през вратата.
Използване 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 отговори е променяно от подписването на споразумението. А 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 на всеки изход пътека. Маркер от разбито бягане се почита преди следващата мутация на този файл.
Сертифицирането е команда с код за изход.
Не е опашка за преглед, в която някой чете кода ви и си съставя мнение. Преди да изпратите, пуснете на собствената си машина същите тестови пакети, които пускаме и ние. Публикуваните JSON схеми (8) в doc/contracts/schemas/ обхващат настройки, действия, спецификации на Builder, съпоставяне на събития за пътуване и търговия, рецепти за работни процеси, договори за конектори и манифести на версиите.
- manifests Сподели и се съгласи един с друг
- възможности съществува в класа по време на бягане
- interfaces изпълнявано, когато е декларирано
- files всеки необходим файл, който е налице
- действия съвпада с манифеста за действията
- destructive декларация за потвърждение
- самоличност стабилен външен ключ, а не електронна поща
- повторение повтаряне на актуализациите, никога дублирани
- предприятие декларациите съответстват на разширението
- docs ПРОЧЕТЕТЕ, РАЗВИТИ, ПРОМЕНЛИВ
- схеми Всеки 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 е генериран и неговите схеми 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 | Ръчно валцувани | ✓ |
| Сухата писмена версия пише + 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 използване hash_equals. Валидно X-OpsIQ-Timestamp в рамките на прозореца за възпроизвеждане и употреба X-OpsIQ-Delivery като идентификатор на проследимата доставка.dry_run за действията, чийто генериран договор го поддържа, изпълнете ограничения тест на връзката в Connector Builder, прегледайте генерираните файлове и преминете проверките за съответствие на пакета и за издаване, преди да смятате конектора за готов.settings.json, по избор actions.jsonШестетапният строител го сглобява; регистърът го открива; конформността и освобождава портите го утвърждават.