Platforma programistów · REST · webhacks · SDK

Zrób platformę - AI-operable.

OpsIQ ujawnia czysty REST API, haki HMAC- podpisane, rejestr działań-kontrakt i ready-to- statek SDK. Określ jakie zdarzenia wypalić z systemu, jakie działania AI jest dozwolone do uruchomienia, a jakie dane są bezpieczne do odczytania. OpsIQ obsługuje podpisy, powtórzenia, dzienniki audytu i przepływ potwierdzenia dla Ciebie.

HMAC- SHA256 w obie stronyPHP · Node · Python SDKOpenAPI3.0.3umowaZakres kontroli 100%
Podpisano wniosek w
Podpisany haczyk internetowy → 200 OK
Żywe curl → OpsIQ → podpisany haczyk POST /v1/actions/run X- OpsIQ- Podpis { "action": "refund _ facture", "potwierdzona": prawda} WERYFIKACJA · RUN · KONTROLA podpis rola + zakres wiersz kontrolny @ opsiq / sdk widget w sprawie ("action. executed") weryfikuje uchwyt HMAC → 200 OK
3Oficjalne SDKs: PHP, Node, Python
HMACSHA- 256 podpisany na każde żądanie
40+wydarzenia uniwersalne do subskrypcji
100%Zakres działań w ramach audytów
Okres życia wniosku

Proszę o pomoc. Podpisano haczyk.

Po zakończeniu OpsIQ API z kluczem do właściciela. OpsIQ sprawdza zakres i rolę, działa zakontraktowane działanie, pisze wiersz audytowy - następnie odpala haka HMAC- podpisanego na stronie do punktu końcowego. Każdy hop jest uwierzytelniony, idemotive i ponownie próbował na niepowodzenie.

HMAC- SHA256 haki webhacks - przychodzące i wychodzące ładunki hakowe są podpisywane na ciele surowym; API wywołuje uwierzytelnianie za pomocą skalowanego klucza do Lozarka.
Automatyczne powtórki - nieudany powrót dostaw i ponowny próba, z identyfikatorem dostawy można wyśledzić.
Klucze bezdempotencyjne - odtwarzanie - bezpieczne z projektu, więc ponownie wypróbowane dostawy nigdy nie działa dwukrotnie.
Twoja aplikacja POST /v1/actions/run X- OpsIQ- Podpis X- OpsIQ- Znacznik czasu WERYFIKACJA - RUN - KONTROLA Twój punkt końcowy POST /webhooks weryfikuje HMAC 200 OK zweryfikowany podpis zakres + sprawdzona rola zlecone działania wiersz kontrolny NALEŻY PODSTAWOWAĆ WEBHOOK PŁALOAD { "wydarzenie": "action. executive", "delivery _ id": "dlv _ 8f2a9", "idempotency _ key": "idem _ 31c7", "podpis": "sha256 =9c4e0a7b..." } dostarczony
01 Podpisany wniosek 02 weryfikuje HMAC 03 umowa na prowadzenie działalności 04 pisz wiersz audytu 05 Podpisany hak
Szybki start

Od zera do integracji na żywo w cztery kroki.

Generuj klucz, odpal swoje pierwsze zdarzenie, subskrybuj haczyk, zarejestruj akcję. Możesz uruchomić całą pętlę z piaskownicą przed dotknięciem danych produkcyjnych.

Konsola do piaskownicyPołączone
KONSOLA ROZWOJU · piaskownica 1 · Generuj klucz opq _ live _ xxx · jeden scoped Loader key 2 · Odpalić zdarzenie POST /v1/events/fire "order. sended" 3 · Subskripować haczyk → https://api.you.com/webhooks 4 · Zarejestruj akcję saas. refund _ faxer · skontrolowane
PromowaniePiaskowiec → produkcja, ten sam kod
01

Weź klucz.

Zarejestruj się i wygeneruj powiększenieAPIklucz (opq_…) w ustawieniach deweloperów i dać każdej integracji tylko powierzchnie, których potrzebuje.

02

& Zaprenumeruj

POST podpisanego events/fire (lub użyć SDK), a następnie wskazać dowolny URL w każdym zdarzeniu, podpisane, z identyfikatorem dostawy i cofnięcia ponownie.

03

Zarejestruj się

Zdecyduj się na podpisaną umowę o działaniu, aby SI mogła bezpiecznie prowadzić operacje, z kontrolami roli, polityką potwierdzającą oraz pełną ścieżką audytu.

Jak to pasuje do siebie

Jeden wzór złącza. Pięć czystych prymitywów.

Wszystko, co jest platformów- specyficzne życie w złączu. OpsIQ rdzeń pozostaje ogólny, AI pozostaje przewidywalny, a integracja pozostaje kontrolowana.

01
Wyzwalacze

Powiedz OpsIQ, co się właśnie stało.

Wypalić uniwersalne wydarzenia z platformy - lub własne nazwy zdarzeń niestandardowych. Każdy abonent reaguje w czasie rzeczywistym, w kolejności priorytetowej.

Odniesienie do zdarzenia
invoice.paid events. fire () Mózg ptasiej grypykontekst żywy zasadypriorytet 20 lusterkoNajpierw pisz hakPodpisane
Universal + niestandardowe zdarzeniainvoice.paid, ticket.created, subscription.cancelled, customer.signed_up Albo swoją własną. Abonenci fanoutMózg AI, zasady automatyzacji, złącza lustrzane i punkty końcowe haka webowego reagują. Porządek priorytetowyDeterminacyjne wysłanie więc lustra pisać przed alarmami ognia.
02 / Umowy o działania

Powiedz OpsIQ, co AI może robić.

Umowa o działanie jest podpisaną deklaracją JSON: co robi działanie, jakie role mogą go uruchomić, jakie parametry akceptuje, czy wymagane jest potwierdzenie oraz punkt końcowy do wywołania.

Schemat działania
AI nie może wymyślać działańMoże tylko poprosić o prowadzenie tych, które zarejestrowałeś. Polityka potwierdzaniaRyzykowne działania uruchamiają kartę podglądu przed jakimkolwiek efektem ubocznym. Rola + bramka powierzchniowaKażde działanie określa role i powierzchnie, które można uruchomić.
umowa o pracę -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 / Podpisane haki

Wciśnij zdarzenia do stosu - z kryptograficznym dowodem.

URL na każde wydarzenie. OpsIQ POSTs JSON ładunek załadowany podpisem HMAC- SHA256 nad ciałem surowym - zweryfikuj go w kilku liniach.

Ochrona przed powtórnymi odtwarzaniamiIdentyfikator dostawy nadający się do śledzeniaOdkładanie powtórzeń
Odniesienie do haka internetowego
weryfikują haczyk 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 / SDK

Upadek w klientach dla języka, którego już używasz.

Trzy oficjalne SDK obsługują uwierzytelnianie, podpisywanie, powtórzenia, idepotencję i odpowiedzi wpisywane. Albo pozostań bez framework - każdy SDK jest cienkim owijaczem wokół tej samej powierzchni REST.

przykłady klientów
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",
})
PHP 8.4 +Node. js 18 +Python 3.10 +3.0.3
05 / Wzór łącznika

Zbuduj raz, podłącz się do wszystkiego.

Złącze jest folderem z jedną klasą PHP. Odkrywa go OpsIQ, rejestr łączy zdarzenia, a kod specyficzny dla platformy pozostaje czysty oddzielony od rdzenia.

Przewodnik po złączu
Pięć haczykówidentityProviders(), contextProviders(), registerActions(), subscribers(), handleWebhook(). Napędzane manipulacyjnieactions.json oraz settings.json deklaruje kontrakty i konfigi. Auto- decoverageWrzuć folder, podpisz go, włącz w admin.
Od intencji do bezpiecznego działania

Zwykły angielski. Operacja zakończona.

OpsIQ nigdy nie wypowiada właściwego połączenia. Przechodzi przez zarejestrowane kontrakty, przygotowuje ładunek, prosi o potwierdzenie, kiedy działanie tego wymaga, i tworzy kompletny wiersz audytu, gdy wykonuje, więc AI, które mogą działanie Nigdy nie stanie się sztuczną inteligencją, której nie można ufać.

- Związane z umową. AI proponuje tylko działania, które zarejestrowałeś.
Potwierdzić przed skutkami ubocznymi. Ryzykowne działania najpierw wynurzają kartę podglądu.
- Kompletnie sobie przypomniałem. Każdy sygnał, odpowiedź i wynik akcji uchwycony w historii AI.
Etapy 4Intent → audyt
HMACpodpisane przed wykonaniem
"Zwróć ostatnią fakturę Adama" Krok 1 · Rozdzielczość intencji → dopasowane: saas. refund _ faxer Powierzchnia: admin · rola: właściciel · Krok 2 walidate Krok 3 · Potwierdź & znak karta podglądowa · faktura # 8421 Potwierdź Krok 4 · Wiersz audytu aktor · prompt · wynik · 412ms Tylko właściciel - · eksportowalny jako CSV
Brak wymyślonych połączeńTylko rejestr zamówień
Potwierdzanie- falistepodgląd przed efektami ubocznymi
Skontrolowane 100%prompt + odpowiedź + wynik
Odniesienie

Powierzchnia API - Na pierwszy rzut oka.

Każdy główny punkt końcowy, jego aut, idepotencja i per- key limit szybkości. Pełna umowa do odczytu maszynowego żyje w OpenAPI 3.0.3 odniesienia.

OpenAPI3.0.3odniesienie
Punkt końcowyAuthIdemstrongLimit stawki
NapiszPodpisane powierzchnie efektów ubocznych
POST /v1/events/fireHMACTak.1000 / min
POST /v1/actions/runHMACTak.200 / min
POST /v1/webhooks/testHMACTak.60 / min
CzytajKontekst, bilety i wykaz złączy
GET /v1/customers/{id}HMACTak.2000 / min
GET /v1/ticketsHMACTak.2000 / min
GET /v1/connectorsHMACTak.2000 / min

Limity stawek są na klucz i zwracane na każdej odpowiedzi jako X-OpsIQ-RateLimit-Remaining; przekroczenie limitu zwrotu 429 o Retry-After nagłówek. Pełna umowa do odczytu maszynowego (każdy punkt końcowy, schemat i błąd) żyje w OpenAPI3.0.3odniesienie.

Zbudowanie złącza

Statek złącze w 5 kroków.

Złącze jest folderem samozasypanym. Odkrywa go OpsIQ, rejestr łączy zdarzenia, a kod specyficzny dla platformy nigdy nie przecieka do rdzenia.

1Przeskanuj folder z connector.php rozszerzające AbstractConnector.
2Zadeklaruj actions.json oraz settings.json manifesty.
3Wdrożenie dostawców tożsamości, kontekstu i haków internetowych.
4Zaprenumeruj wydarzenia, na których ci zależy.
5Podpisz, wrzuć, włącz w admin.
Test przed statkiem

Klucz do piaskownicy i tester haka.

Każda przestrzeń robocza eksponuje piaskownicę: oddzielny klucz skalowany, który uderza w tę samą powierzchnię API bez dotykania danych produkcyjnych. POST /v1/webhooks/test aby odpalić podpisaną próbkę dostawy na Twoim punkcie końcowym i potwierdzić swoją weryfikację podpisu przed przejściem na żywo. Instalacje Self-host uruchomić identyczną ścieżkę kodu, bez dryfowania behawioralnego między chmurą i on- prem.

Klucze do piaskownicy Tester z hakiem internetowym Praca na rzecz rozwoju w ramach polityki pieniężnej Chmura i samo-hostowane parytyzm
connector. php · php
klasa AcmeConnector rozszerza AbstractConnector { funkcja publiczna klucz (): ciąg { powrót "acme"; } / / Rozwiązać, kim jest aktor funkcja publiczna identityProviders (): tablica { powrót [nowy AcmeIdentityProvider()]; } / / Przesyłam dane na żywo do serwera AI funkcja publiczna contextProviders (): tablica { powrót [nowy AcmeContextProvider()]; } / / Reakcja na wydarzenia OpsIQ funkcja publiczna abonenci (): tablica { powrót ["invoice. paid" => [nowy BillingMirror()]]; } / / Otrzymuj przychodzące haki z Acme funkcja publiczna uchwyt ręczny (tablica $body): nieważny { /* … */ } }
Jak to się porównuje

OpsIQ vs a Integracja DIY.

Co za umowa, podpisane, skontrolowane platformy daje Ci, że toczenie własnych haków internetowych i AI- działania hydraulika nigdy nie będzie.

ZdolnośćZrób własnyOpsIQ
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) Zmienne
Connector pattern: platform code stays isolated
FAQ

Pytania deweloperów, Odebrałem.

Auth, podpisy, SDK, piaskownica i model złącza: wszystko, o co poprosisz przed pierwszym wnioskiem.

API wywołuje uwierzytelnianie za pomocą jednego skalowanego klucza: wysłać Authorization: Bearer opq_…. OpsIQ sprawdza zakres klucza i rolę aktora przed wszystkim działa. Haki są oddzielone: każdy hak OpsIQ wysyła X-OpsIQ-Signature (a hex HMAC- SHA256 ciała surowego) i X-OpsIQ-Timestamp dla ochrony replay, dzięki czemu możesz zweryfikować nas w zamian, a przychodzące haki internetowe są sprawdzane w ten sam sposób.
Nie. AI może proponować działania, które istnieją w rejestrze umów akcji. Nie może wynaleźć połączenia. Każda umowa deklaruje powierzchnie, role i parametry dozwolone, a wszelkie działania oznaczone requires_confirmation przed uruchomieniem efektu ubocznego nabiera powierzchni karty podglądu dla człowieka.
Rekombinuj hash_hmac('sha256', $rawBody, $secret) (hex digest bez przedrostka) i porównać go z X-OpsIQ-Signature nagłówek z kontrolem czasu constant- time (hash_equals). Każda dostawa zawiera również znacznik czasu, klucz idepotencji i ID dostawy można śledzić.
Dostawy, które nie zwracają 200 są ponownie próbowane z wykładniczym back- off, każdy z nich nosi ten sam klucz idepotencji tak ponownie wypróbowany dostawy nigdy dwa razy. Możesz śledzić każdą próbę przez ID dostawy w admin lub dzienniki.
Oficjalne SDK dla PHP 8.4 +, Node. js 18 + i Python 3.10 + obsługują podpisywanie, powtórzenia, klawisze idempotencji i odpowiedzi wpisywane. Są cienkie opakowania wokół powierzchni REST, więc można również wygenerować własnego klienta z opublikowanego kontraktu OpenAPI 3.0.3 lub zadzwonić bezpośrednio do API.
Tak. Każda przestrzeń robocza eksponuje piaskownicę z własnym kluczem skalowanym, który uderza w tę samą powierzchnię API bez dotykania danych produkcyjnych, plus POST /v1/webhooks/test aby odpalić podpisaną próbkę w punkcie końcowym i potwierdzić swoją weryfikację przed rozpoczęciem życia.
Tak. Instalacje w trybie self-host prowadzą identyczną ścieżkę kodową (ten sam podpis, ten sam rejestr połączeń, ten sam kontrakt OpenAPI), więc nie ma żadnego dryfowania behawioralnego pomiędzy chmurą a on- prem.
Złącze jest samodzielnym katalogiem z jedną klasą PHP rozszerzającą AbstractConnector, plus actions.json oraz settings.json manifesty. Wdrażasz identityProviders(), contextProviders(), registerActions(), subscribers() oraz handleWebhook(). OpsIQ odkrywa go automatycznie, przewoduje zdarzenia i utrzymuje swój kod specyficzny dla platformy czysto oddzielony od rdzenia.