Зробіть свій майданчик АІ-оперативний.
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.
Заявка на копію. Вивіска.
ПОСТ дії /api/v1.php з за розміром ключа Bearer. OpsIQ шпильками робочого простору, вносить договір дій та дозволи, потім виконує або висушує його. Підписані канонічні події залишають через чергу доставки HMAC з відмітними спробами і обмеженими реченнями.
З ключа до регулювання інтеграції три кроки.
Ви маєте можливість отримати доступ до веб-сайту, якщо ви хочете замовити доставку.
Отримати ключ
Підпишіться на розсилку та створюйте об'ємний підшипник API ключ (opq_…) в налаштуваннях розробника і дають можливість кожній інтеграції тільки поверхонь, які вона потребує.
Знайти та перевірити
Читати далі meta.actions, meta.action і meta.scopes; використання dry_run написати до виконання.
Виконувати та підписатися
Додати ключ idempotency для запису, після чого підписайте кінцеву точку на канонічні події.
Один роз'єм візерунком. П'ять чистої примітивів.
У будь-якому місці, що знаходиться в роз'ємі. OpsIQ ядро залишається загальним, AI залишається передбачуваним, і ваша інтеграція залишається слуховим.
Про нас OpsIQ Що б сталося.
Ви можете дізнатися про події, які ви хочете зробити замовлення.
Посилання на західinvoice.paid, ticket.created, subscription.cancelled, customer.signed_up або самостійно.
ВідеоспостереженняСиндром AI, правила автоматизації, дзеркальні роз'єми та кінцеві точки вебхока.
Порядок деннийВизначте складне відправлення, що дозволяється написати до оповіщення про пожежу.
Про нас OpsIQ Що допускається АІ.
Кожна названа операція отримує сформований контракт: обсяг, функція, читання або письмо вид, ризик, політика підтвердження, запит та відповідь schema, сухий супровід, idempotency і стабільні помилки.
Дія schema{
"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 і 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 може бути надана можливість отримати підтвердження, коли дія вимагає її, і видає повний аудитовий ряд при виконанні, тому AI, який може бути здійснений в результаті виконання, тому 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сухе_рун + idempotencyКонфігурація / часACTION security.reportsecurity.writeсухе_рун + idempotencyКонфігурація / час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.writeсухе_рун + idempotencyКонфігурація / часACTION hr.org.treehr.readПрочитатиКонфігурація / часhr не порожня. Що таке HR-спільнота.Обмеження ставок на час на вікно. Відповіді викладаються X-RateLimit-Limit, X-RateLimit-Remaining і X-RateLimit-Reset; відмова від запиту 429 з Retry-After. Використовуйте КРОК 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 має відповіді було змінено з моменту підписання. А. 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.
Мутація ніколи не застосовується.
У тексті пошуку не збігався, файл був доручений, номер пройшов і записаний доказ зелений під старою кодом про код, який ніколи не був старий. Спійманий, що вимагає точно одного текстового матчу і порівняння файлів має бути або сторона.
Мутація зламала щось інше.
У номері вийшов червоний, тому що файл припинив парсінг або загинув чобіт, і доказ записав червоний, який нічого не мав захвата. Спійманий лляним рухом і вимагає від Ім'я Тест серед збоїв.
Не можна залишити мутант на диску.
Кожен мутац копіює оригінальний на боковий автомобіль поза деревом, пише маркера, що нагадує видатну зміну, а також підкорює замкнений обробник на кожному шляху виходу. Маркувальник від збитого ходу відзначається перед наступним примноженням цього файлу.
Сертифікація - це команда з вихідним кодом.
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/ налаштування кришки, дії, Будівельник специфікації, подорожі та комерція подій картування, рецепти робочого процесу, роз'ємні контракти і реліз проявляються.
- manifests згодні один одному
- можливості існує на рівні runtime
- 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's канонічні комерціальні ролі. Наявність файлу є претензією. Вона з'являється в налаштуваннях продажу, момент, який він заявляє і зникає при зупинках. Немає списку приєднатися і ніхто не запитати.
канонічний ЦЕНА ЗА ЧАС: роль наклеєний до загальної запису. Узгоджується з'єднання: зберігання іменника, що знаходиться в місці мутації, незалежно від умовного положення. Написання бізнес-ряду безпосередньо пропускає ціноутворення платформи, блокування доступності та підтвердження пошти, і виробляє замовлення власної системи лише половина вірить. Ні 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. Непристойна середовище є те, як тест-mode провайдер приймає оплату в режимі реального часу.
OpsIQ проти Інтеграція ДІЮ.
Що таке договірне, підписане, перевірена платформа дає вам змогу розкачати власні веб-доки та санітарні засоби, які ніколи не будуть.
| Можливість | Почати свій власний | OpsIQ_ |
|---|---|---|
| Підшипник API + HMAC-призначений вебок | Руководство | ✓ |
| Схил-біг записує + 24-годинний успішний релей | ДІЄ | ✓ |
| 1m → 5m → 30m → 2h → 12h retries | ЧАСТИНА ДІЯЛЬНОСТІ | ✓ |
| Реєстри контрактів (AI не може запускати дзвінки) | — | ✓ |
| Політика підтвердження перед побічними ефектами | — | ✓ |
| Конверт для помилок + ідентифікатори запиту | Керівництво залога | ✓ |
| Прямий HTTP + сформовані параметри клієнта | Написати своє | ✓ |
| КРОК 3.0.3 машинно-прочитаний контракт | Мапа | ✓ |
| Шість-стажів будівельників + випуск пакета воріт | Побудувати інструмент | ✓ |
| Робочі місця-шпильовані ключі та часові ліміти | Вейджери | ✓ |
| Роз'єм шаблону: код платформи залишається ізольованим | — | ✓ |
Питання розробника, відповіли.
Ауттентифікація, контракти, речення, виробництво клієнтів, безпечне тестування та модель роз'єму, перед першим виробничим запитом.
Authorization: Bearer opq_…. Ключі можуть бути обмеженими, обмеженими або зчитуваннями-тільки, перевозити принаймні припливні ділянки, обібрати погодинну ліміт і можна закріпити до робочого простору. Вхід Webhook окремий: вихідні поставки 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 на дії, які генерували контракт, запустіть тест з'єднання «Роз'єм», перевіривши його сформовані файли та передають роз'єму пакету і випускають ворота до обробки роз'єднувача.settings.json, необов'язково actions.json, створене можливість контракту, документації та додаткового розширення підприємства. шестиступеневий конструктор збирає його; реєстр відкриває його; конформаційно-випускні ворота, які втілюють її.