Платформа разработчика · REST · webhooks · SDK

Создайте свою платформу Работает с ИИ.

OpsIQ раскрывает чистый REST API, HMAC-подписанные веб-хуки, реестр договоров действий и готовых к отправке SDKs. Определите, какие события возгораются из вашей системы, какие действия ИИ разрешено выполнять, и какие данные безопасны для чтения. OpsIQ обрабатывает подписи, повторные записи, журналы аудита и потоки подтверждения для вас.

HMAC-SHA256 в обоих направленияхPHP · Узел · Python SDKOpenAPI3.0.3 контракт100% Покрытие аудита
Заявка подписана в
Вышел новый webhook 200 OK
Живи curl → OpsIQ → подписанный webhook POST /v1/actions/run X-OpsIQПодпись { "action": "refund_invoice" "подтверждено": истинно ERIFY · RUN · AUDIT подпись ✓ Роль + масштаб ✓ строка аудита написана @opsiq/sdk виджет (перенаправлено с «action. executed») Проверить HMAC-ручку 200 ОК
3Официальные SDK: PHP, Node, Python
HMACSHA-256 подписан на каждый запрос
40+Универсальные мероприятия для подписки
100%охват аудиторского журнала действиями
Жизненный цикл запроса

Запроси. Подписал крюк.

Вы POST к OpsIQAPI с вашим ограниченным ключом Bearer. OpsIQ проверяет область и роль, выполняет контрактное действие, пишет строку аудита - затем запускает веб-хук с подписью HMAC обратно в конечную точку. Каждый прыжок аутентифицирован, идемпотентен и повторно проверен на отказ.

Веб-хук HMAC-SHA256 - входящие и исходящие полезные нагрузки веб-хука подписаны на необработанный корпус; API вызовы аутентифицируются с помощью приложенного ключа Bearer.
Автоматические повторы - неудавшиеся поставки назад и повторный, с идентификатором доставки вы можете отследить.
Ключи от импотенции - безопасен для повторного воспроизведения по дизайну, поэтому повторная доставка никогда не будет двойным действием.
Ваше приложение POST /v1/actions/run X-OpsIQПодпись X-OpsIQTimestamp ВЕРИФИЯ - Бег - АУДИТ Ваша конечная точка POST /webhooks Проверить HMAC 200 ОК Подпись проверена Область применения + роль проверена контрактный экшн-рейд строка аудита написана WEB - Книжная плата { "Событие"«action. executed» (исполнено) delivery_idDR72 «idempotency_key»: "idem_31c7" "подпись""sha256"IP" } доставленный
01 подписанный запрос 02 Проверить HMAC 03 контракт 04 написать строку аудита 05 подписанный web-cook
Быстро стартовать

От нуля к живой интеграции в Четыре шага.

Создайте ключ, запустите первое мероприятие, подпишитесь на веб-хук, зарегистрируйте действие. Вы можете запустить весь цикл против песочницы, прежде чем касаться производственных данных.

Sandbox Консольподключенный
Консоль разработчика · песочница 1_ Создать ключ opq_live_xxx · один ограниченный ключ 2_ Увольнение POST /v1/events/fire "order. shipped" 3 · Подписаться на веб-хук https://api.you.com/webhooks 4 Зарегистрируйте действие saas. refund_invoice · аудит
поощрятьSandbox — производство, тот же код
01

Получить ключ

Зарегистрируйтесь и создайте ограниченный ключ Bearer API (opq_…) в настройках разработчика и придавать каждой интеграции только те поверхности, которые ей необходимы.

02

Огонь и подписка

Пост подписанный events/fire (или используйте SDK), затем укажите любой URL на любое событие, подписанное, с идентификатором доставки и обратной перезаписью.

03

Зарегистрируйте действие

Объявить подписанный контракт на действия, чтобы ИИ мог безопасно выполнять операции с проверкой ролей, политикой подтверждения и полным аудитом.

Как они сочетаются

Один шаблон разъема. Пять чистых примитивов.

Все, что касается платформы, живет в разъеме. Ядро OpsIQ остается общим, ИИ остается предсказуемым, а ваша интеграция остается поддающейся аудиту.

01
Триггеры

РассказатьOpsIQЧто только что произошло.

Уничтожайте универсальные события с вашей платформы или собственные имена событий. Каждый абонент реагирует в режиме реального времени, в приоритетном порядке.

Ссылка на событие
invoice.paid События. Пожар() МозгЖивой контекст правилаПриоритет 20 зеркалоНаписать сначала веб-хукподписанный
Универсальные + пользовательские событияinvoice.paid, ticket.created, subscription.cancelled, customer.signed_up Или свой собственный. Подписчики Fan-outМозг ИИ, правила автоматизации, зеркальные разъемы и конечные точки вашего веб-хука реагируют. Приоритетный порядокДетерминистическая посылка, так что зеркала пишут перед тем, как предупредить о пожаре.
02 / Договоры на выполнение

Скажите OpsIQ, что ИИ может делать.

Договор действия — это подписанная JSON декларация: что делает действие, какие роли могут его выполнять, какие параметры он принимает, требуется ли подтверждение и конечная точка для вызова.

Схема действий
ИИ не может изобретать действияОн может попросить только те, которые вы зарегистрировали. Политика подтвержденияРискованные действия запускают предварительную карту до любого побочного эффекта. Роль + поверхностное зудящееКаждое действие объявляет роли и поверхности, которые позволяют ему выполняться.
Договор действия - JSON
{
  "key": "saas.refund_invoice",
  "label": "Refund a paid invoice",
  "surface": ["admin"],
  "roles": ["owner", "billing_admin"],
  "requires_confirmation": true,
  "params": {
    "invoice_id": { "type": "int", "required": true },
    "reason": { "type": "string", "max": 500 }
  },
  "endpoint": "https://api.you.com/refund",
  "audit": true
}
03 / Подписанные веб-хуки

Нажмите события в свой стек - с криптографическим доказательством.

Подписаться на любойURLна любое событие.OpsIQПостсJSONПолезная нагрузка, подписанная с HMAC-SHA256 над необработанным корпусом - проверьте ее в несколько строк.

Защита от повторовИдентификатор прослеживаемой доставкиСквозные повторы
Ссылка на Web-cook
Проверить webhook - php
$raw = file_get_contents('php://input');
$sig = $_SERVER['HTTP_X_OPSIQ_SIGNATURE'] ?? '';
$expected = hash_hmac('sha256', $raw, $secret); // hex digest, no prefix
if (!hash_equals($expected, $sig)) http_response_code(401);
$event = json_decode($raw, true);
04/SDKs

Загрузите клиент для языка, который вы уже используете.

Три официальных SDK обрабатывают аутентификацию, подпись, повторные записи, ключи идемпотентности и типизированные ответы. Или остаются без фреймворка - каждый SDK представляет собой тонкую обертку вокруг одной и той же поверхности REST.

Примеры клиентов
import { OpsIQ } from "@opsiq/sdk";
const ops = new OpsIQ({ apiKey: process.env.OPSIQ_KEY });

await ops.events.fire("order.shipped", {
  customer_id: 421,
  order_ref: "NB-9182",
  carrier: "DHL"
});

const result = await ops.actions.run("saas.send_kb_link", {
  ticket_id: 5519,
  article: "how-to-reset-password"
});
use OpsIQ\Client;

$ops = new Client([
  'api_key' => getenv('OPSIQ_KEY'),
]);

$ops->events->fire('order.shipped', [
  'customer_id' => 421,
  'order_ref' => 'NB-9182',
]);

$result = $ops->actions->run('saas.send_kb_link', [
  'ticket_id' => 5519,
  'article' => 'how-to-reset-password',
]);
from opsiq import OpsIQ

ops = OpsIQ(
    api_key=os.environ["OPSIQ_KEY"],
)

ops.events.fire("order.shipped", {
    "customer_id": 421,
    "order_ref": "NB-9182",
})

result = ops.actions.run("saas.send_kb_link", {
    "ticket_id": 5519,
    "article": "how-to-reset-password",
})
PHP8.4+Node. js 18+Python3.10+REST · OpenAPI 3.0.3
05/ Модель разъема

Построй один раз, подключи что угодно.

Разъем — это папка с одним классом PHP. OpsIQ обнаруживает его, реестр проводит события, и ваш код, специфичный для платформы, остается четко отделенным от ядра.

Руководство по подключению
Пять крючковidentityProviders(), contextProviders(), registerActions(), subscribers(), handleWebhook(). управляемый манифестомactions.json и settings.json Объявлять контракты и конфигурацию. АвтооткрытБросьте папку, подпишите ее, включите в админ.
От намерения к безопасным действиям

Просто английский. Проверенная операция.

OpsIQ никогда не изобретает правильный вызов. Он проходит через зарегистрированные контракты, готовит полезную нагрузку, просит подтверждения, когда это требуется действием, и производит полную строку аудита, когда он выполняется, поэтому ИИ, который может действовать Никогда не становитесь ИИ, которому нельзя доверять.

Контрактный. ИИ предлагает только те действия, которые вы зарегистрировали.
Подтвердите побочные эффекты. Рискованные действия сначала отображают карту предварительного просмотра.
Полный отзыв. Каждый результат, ответ и действие запечатлены в истории ИИ.
4 шаговнамерение - аудит
HMACподписано до исполнения
"возврат последнего счета Адама" Шаг 1 · разрешение намерения Для этого необходимо: saas. refund_invoice поверхность: администратор · роль: владелец · Шаг 2 валидация Шаг 3 · Подтверждение и знак Предварительная карта · счет #8421 Подтверждаю Шаг 4 · Аудиторская строка актер · подсказка · результат · 412ms Экспортируемый как CSV
Не придуманные звонкитолько договорный реестр
Подтвержденныйпредварительный просмотр перед побочными эффектами
100% ПровереноБыстрый + ответ + результат
Ссылка

API поверхность С первого взгляда.

Каждая конечная точка ядра, ее аут, идемпотентность и предел скорости ключа. Полный машиночитаемый контракт живет в ссылке OpenAPI 3.0.3.

OpenAPI3.0.3 Ссылка
Конечная точкаАутаимпотентОграничение по ставкам
ПисатьПоверхности с побочным эффектом
POST /v1/events/fireHMACДа.1000/min
POST /v1/actions/runHMACДа.200/min
POST /v1/webhooks/testHMACДа.60/min
ЧитатьКонтекст, билеты и инвентарь разъема
GET /v1/customers/{id}HMACДа.2000/min
GET /v1/ticketsHMACДа.2000/min
GET /v1/connectorsHMACДа.2000/min

Ограничения ставок указаны на ключ и возвращаются на каждый ответ в качестве X-OpsIQ-RateLimit-Remaining; превышение предельного размера возврата 429 с а Retry-After Полный машиночитаемый контракт (каждая конечная точка, схема и ошибка) живет в OpenAPI3.0.3 Ссылка.

Построить разъем

Отправьте соединитель в Пять шагов.

Разъем — это самодостаточная папка. OpsIQ обнаруживает ее, реестр проводит события, и ваш код, специфичный для платформы, никогда не просачивается в ядро.

1Скафандр папка с connector.php расширять AbstractConnector.
2Декларация actions.json и settings.json манифесты.
3Внедрение идентичности, контекста и поставщиков веб-хуков.
4Подписывайтесь на события, которые вас волнуют.
5Подпиши, запиши, включи в админ.
Испытание перед отправкой

Ключ от песочницы и тестер веб-хуков.

Каждое рабочее пространство обнажает песочницу: отдельный ключ, который попадает в одну и ту же область.APIповерхность без прикосновения к производственным данным. POST /v1/webhooks/test чтобы запустить подписанную доставку образца в вашей конечной точке и подтвердить вашу проверку подписи перед выходом в эфир. Самостоятельные установки выполняют одинаковый путь кода без поведенческого дрейфа между облаком и на месте.

Ключи от песочницы Тестер Web-cook Работа с использованием крон Облако и самохостинг паритета
connector. php · php
класс Акме-коннектор расширять AbstractConnector { общественная функция ключ(): струна { возвращение "акме"; } Решите, кто такой актер общественная функция Идентификаторы(): массив { возвращение [новый AcmeIdentityProvider()]; } // Кормить живые данные в AI-подсказку общественная функция Контекстные провайдеры(): массив { возвращение [новый AcmeContextProvider()]; } // Реагировать на события OpsIQ общественная функция абоненты(): массив { возвращение ["Счет. оплачено" => [новый BillingMirror()]]; } // Получать входящие веб-хуки от Acme общественная функция РукояткаWebhookмассив $body): пустой { /* … */ } }
⁇ ️ Как это соотносится

OpsIQ против a Интеграция DIY.

Что связанная контрактом, подписанная, проверенная платформа дает вам, что прокатка ваших собственных веб-хуков и сантехника с искусственным интеллектом никогда не даст.

способностьСвернуть свой собственныйPHP 8.4+ · MySQL 5.7+
HMAC-signed requests & webhooks (both ways) Hand-rolled
Idempotency keys + replay protection DIY
Automatic back-off retries with delivery IDs DIY queue
Action-contract registry (AI can't invent calls)
Confirmation policy before side-effects
100% audit-log coverage on actions Manual logging
Official PHP / Node / Python SDKs Write your own
OpenAPI 3.0.3 machine-readable contract Maybe
Sandbox keys + webhook tester Build a staging rig
Cloud & self-hosted parity (same code path) Вариации
Connector pattern: platform code stays isolated
часто задаваемый вопрос

Вопросы разработчиков, ответил.

Аута, подписи, SDK, песочница и модель разъема: все, что вы попросите перед первым запросом.

API звонки аутентифицируются с помощью одного ключа Bearer: отправить Authorization: Bearer opq_…. OpsIQ проверяет объем ключа и роль актера, прежде чем что-либо запустится. Webhooks разделены: каждый веб-хук OpsIQ отправляет сообщение, которое не имеет значения. X-OpsIQ-Signature (шести HMAC-SHA256 сырого тела) и X-OpsIQ-Timestamp для защиты от повторного воспроизведения, чтобы вы могли проверить нас в ответ, и входящие веб-хуки, которые вы отправляете, проверяются таким же образом.
Нет. ИИ может только предлагать действия, которые существуют в вашем реестре договоров на действия. Он не может изобрести вызов. Каждый контракт объявляет разрешенные поверхности, роли и параметры, а любое действие помечено requires_confirmation Поверхность карты предварительного просмотра человеку перед тем, как побочный эффект запускается.
рекомпьютер hash_hmac('sha256', $rawBody, $secret) (не имеет приставки) и сравнивает его с X-OpsIQ-Signature заголовок с постоянной проверкой времени (hash_equalsКаждая доставка также имеет временную метку, ключ идемпотентности и идентификатор доставки, который вы можете отследить. Отрывок PHP на этой странице - это вся проверка.
Поставки, которые не возвращают 200, перепроверяются с экспоненциальным обратным выключением, каждый из которых несет один и тот же ключ идемпотентности, поэтому повторно проверенная доставка никогда не выполняет двойных действий.
Официальные SDK для PHP 8.4+, Node. js 18+ и Python 3.10+ обрабатывают подписание, повторные запросы, ключи идемпотентности и типизированные ответы. Они представляют собой тонкие обертки вокруг поверхности REST, поэтому вы также можете создать свой собственный клиент из опубликованного контракта OpenAPI 3.0.3 или позвонить API напрямую.
Да, каждое рабочее пространство выставляет песочницу со своим ключом, который попадает в одну и ту же коробку.APIповерхность без прикосновения к производственным данным, плюс POST /v1/webhooks/test чтобы запустить подписанную доставку образца в вашей конечной точке и подтвердить вашу проверку перед выходом в эфир.
Самостоятельно размещенные установки выполняют одинаковый путь кода (то же подписание, тот же реестр разъемов, тот же контракт OpenAPI), поэтому между облаком и на компьютере нет поведенческого дрейфа.
Разъем — это самодостаточная папка с одним классом PHP, расширяющимся AbstractConnectorплюс actions.json и settings.json Выполняешь манифесты. identityProviders(), contextProviders(), registerActions(), subscribers() и handleWebhook()OpsIQ автоматически обнаруживает его, проводит события и сохраняет ваш код, специфичный для платформы, четко отделенным от ядра.