Tạo nền tảng cho bạn Dễ thương.
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.
Yêu cầu được thông báo. Đã ký kết sự kiện.
PST một hành động tới /api/v1.php Với một cái chìa khóa kính hiển vi. OpsIQ Đắp vùng làm việc, xác nhận hợp đồng hành động và giấy phép, rồi thực hiện hoặc chạy nó. Các sự kiện chính điển để lại thông qua một hàng đợi phát triển HMAC với các cố gắng theo dõi và bị hạn chế lại.
Từ khóa đến sự hòa hợp giữa các điều khiển 3 bước.
Đưa ra chìa khóa ít tốn kém nhất, phát hiện ra hợp đồng sản xuất, chạy khô một văn bản, sau đó đăng ký một cây móc khi đơn của bạn cần chuyển nhượng sự kiện nền.
Lấy chìa khóa đi.
Đăng ký và tạo ra một máy thu âm API Phím (opq_…) Trong các thiết lập phát triển, và chỉ cho mỗi bề mặt mà nó cần.
Phát hiện & xác thực
Đọc meta.actions, meta.action và meta.scopes; sử dụng dry_run để xác nhận việc viết trước khi thi hành.
Thực hiện & dài hạn
Thêm một chìa khóa vô hạn để viết, rồi đăng ký điểm cuối cùng vào các sự kiện chính điển mà bạn cần áp dụng.
Một kiểu kết nối. 5 người nguyên thủy sạch sẽ.
Bất cứ điều gì cụ thể sống trong một kết nối. OpsIQ Trung tâm vẫn là chung, AI luôn có thể đoán trước được, và sự tích hợp của anh vẫn có thể kiểm toán.
Nói OpsIQ những gì vừa xảy ra.
Các sự kiện chính điển từ nền tảng của bạn, hoặc xác định một sự kiện được điều hành.
tham chiếu sự kiệninvoice.paid, ticket.created, subscription.cancelled, customer.signed_up hoặc của chính anh.
Đăng ký kiểu hâm mộNão AI, quy tắc tự động hóa, gương kết nối và điểm kết thúc mạng lưới của bạn tất cả đều phản ứng.
Thứ tự ưu tiênThông điệp định kỳ do đó gương viết trước khi báo động lửa.
Nói OpsIQ Những gì AI được phép làm.
Mỗi thao tác tên nhận được một hợp đồng tạo ra: phạm vi, tính năng, đọc hoặc viết, rủi ro, chính sách xác nhận, yêu cầu và đáp ứng, hỗ trợ khô, tính chất và lỗi ổn định.
Biểu đồ hành động{
"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"] }
}
Đẩy sự kiện vào chồng của bạn - với bằng chứng mật mã.
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
Dùng trực tiếp HTTP hoặc tạo ra ứng dụng khách bạn thích.
Tướng quân.API được xuất bản như OpenAPI 3.0.3 và Postman. thư mục tham khảo PHP cộng với các ứng dụng khách tích hợp viết tắt Python bao gồm sự kiện đã ký tên và kết nối mạng chảy; bất kỳ ngăn nào cũng có thể gọi như vậy JSON hành động bề mặt trực tiếp.
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.",
},
)
Xây dựng một lần, cắm vào bất cứ thứ gì.
Một kết nối là một gói được điều khiển tạo ra hoặc nhập khẩu thông qua danh tính, Auth, Test, Actions, kích hoạt và Xem lại. OpsIQ được phép lộ diện.
Mở ra người xây sân khấu 6 giai đoạnNói tiếng Anh rõ ràng. Đã thử nghiệm chiến dịch.
OpsIQ Không bao giờ phát minh ra cuộc gọi đúng. và tạo ra một hàng kiểm toán đầy đủ khi nó thực hiện, để một AI có thể làm được hành động Không bao giờ trở thành AI mà bạn không thể tin tưởng.
API bề mặt Trong nháy mắt.
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.writekhô_run + Minh thứcCấu hình / giờNameACTION security.reportsecurity.writekhô_run + Minh thứcCấu hình / giờNameACTION platform.routes.writemandminXác nhận + phímCấu hình / giờNameACTION meta.actionsPhát hiện công cộngChỉ đọcCấu hình / giờNameACTION tickets.listtickets.readChỉ đọcCấu hình / giờNameACTION connectors.listconnectors.readChỉ đọcCấu hình / giờNamehr.* thống kê hr.read / hr.write Phạm viACTION hr.people.listhr.readChỉ đọcCấu hình / giờNameACTION hr.people.createhr.writekhô_run + Minh thứcCấu hình / giờNameACTION hr.org.treehr.readChỉ đọcCấu hình / giờNamehr không phải là một danh sách rỗng. Nhân dân quan chức cấp cao là gì?.Giới hạn tốc độ được cấu hình trên mỗi phím trên cửa sổ một giờ. Phản ứng phơi bày X-RateLimit-Limit, X-RateLimit-Remaining và X-RateLimit-Reset; yêu cầu bị từ chối trở lại 429 có Retry-AfterDùng OpenAPI 3.0.3 Hợp đồng hay Bộ sưu tập người gửi được tạo ra từ cùng một thời gian đăng ký.
Xây dựng, thử và thả vào 6 giai đoạn.
Bắt đầu từ một hồ sơ được điều hành hoặc định nghĩa chính bản thân bạn. Bộ xây dựng xác nhận mỗi giai đoạn trước khi nó tạo ra gói kết nối tự bảo vệ.
Kiểm tra kỹ lưỡng, rồi đi qua cổng thả tự do.
Dùng dry_run khi được hỗ trợ viết hành động, chạy kiểm tra kết nối bị hạn chế của người xây dựng, và thanh tra các bản liệt kê và hợp đồng tạo ra trước khi phát hành. Kiểm tra hiệu lực gói kiểm tra khả năng, tên, thiết lập, chứng minh và tập tin cần thiết; nhân viên nền quản lý việc thăm dò phản ứng và giao hàng hạn chế.
A package cannot claim a capability Nó không có mã.
OpsIQ\Connectors\ConnectorContract Phát hiện thời gian, người xây dựng, gói đầu tiên của bên, phù hợp, tướng quân API Mỗi tài liệu tham khảo đọc một đăng ký. tuyên bố khả năng và ba tập tin phải đồng ý với nhau trước khi OpsIQ Đi một hàng tới chỗ anh.
- 01 connector.php lớp chạy thời gian
- 02 IdentityProvider.php Comment
- 03 SalesIngest.php Pha trộn
- 04 actions.json tên hoạt động
- 05 settings.json cấu hình tổng đài
- 06 connector_contract.json thẩm quyền đọc được bằng máy
hmac-sha256 trên việc xác định tải lên một tập tin...256 hashes trả lời Nó đã được thay đổi kể từ khi kýAn ed25519 Câu trả lời chữ ký được ký bởi Nabtech, có thể kiểm tra với phím công cộng được gói lại và không chia sẻ bí mật. Hãy sửa đổi một byte và những điểm dừng đầu tiên khớp.
marketplace.json là bên ngoài chữ ký theo định nghĩa: người cài đặt viết nó sau khi ký, vì vậy nhà xuất bản không bao giờ có thể đã ký nó.
Một người lính canh chưa bao giờ thất bại là không chứng minh.
Bài kiểm tra xanh không nói với bạn rằng không có gì bị hỏng hôm nay. vì một lính canh không bao giờ được thực hiện như một người bảo vệ mà không làm gì cả. và yêu cầu màn hình phải hét lên.
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.
Sự đột biến không bao giờ xảy ra.
Văn bản tìm kiếm không khớp, tập tin chưa được động đến, các dãy đã qua, và các bằng chứng được ghi lại green under the old code về mã chưa bao giờ cũ. bị bắt bởi yêu cầu chính xác một văn bản khớp và so sánh tập tin hashes cả hai bên.
Sự đột biến đã làm hỏng thứ khác.
Các phòng bị đỏ vì hồ sơ ngừng phân hoặc khởi động đã chết, và bằng chứng ghi lại một màu đỏ không có gì để làm với người bảo vệ. bắt bởi lited người đột biến và yêu cầu các tên Kiểm tra những thất bại.
Nó không thể để lại dị nhân trên đĩa được.
Mỗi đột biến sao chép bản gốc vào một xe hơi bên ngoài cây có trang web, viết một dấu ấn đặt tên sự thay đổi đáng kể, và bị tắt bởi một bộ quản lý trên mỗi lối thoát. một dấu hiệu từ một vụ rơi chạy được vinh dự trước khi có sự biến đổi tiếp theo của tập tin đó.
Theo dõi là lệnh với một mã thoát.
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/ bao gồm thiết lập, hành động, thông số kỹ thuật xây dựng, cuộc hành trình và bản đồ sự kiện thương mại, công thức làm việc, hợp đồng kết nối và phát hành các bản kê khai.
- manifests Phân tích và đồng ý với nhau
- Khả năng tồn tại trên lớp thời gian chạy
- interfaces Thực hiện ở nơi tuyên bố
- files Mỗi tập tin hiện có
- hành động khớp các hành động
- destructive Xác nhận
- ID một phím bên ngoài ổn định, không phải email
- Quay lại Cập nhật lại, không bao giờ sao chép
- Công ty Các khai báo khớp với phần mở rộng
- Các bác sĩ ĐỌC, DYVELOP, CHANGELOG
- Các giản đồ mỗi JSON & Xác thực
$ 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
Chỉ cái đầu tiên vào tài khoản không hiệu quả thực sự với --live-settings=/secure/test-acme.jsonTrong khi anh vẫn còn ngứa, hãy đổi cái cuối cùng để... --unsigned-ok: Nó coi một chữ ký bị mất như một lời cảnh báo thay vì giả vờ là nó ổn.
Nói ra những gì có thể bán được là hồ sơ, không phải đăng ký.
Một kết nối có thể bán tuyên bố nào của của nó câu trả lời thao tác OpsIQVai trò thương mại chính thống của tập tin là sự hiện diện của yêu cầu. nó xuất hiện trong thiết lập bán hàng ngay khi nó tuyên bố và biến mất khi nó dừng lại. không có danh sách để tham gia và không ai hỏi
Một chính điển Ghi Vai trò của bản đồ để ghi hồ sơ chung. Khớp là cấu trúc: danh từ lưu trữ bên cạnh động từ đang thay đổi, bất cứ điều gì bạn có thể lập hội nghị tên. Viết dòng kinh doanh trực tiếp bỏ qua giá trị, khóa và xác nhận thư, và tạo ra một hệ thống riêng của thương gia chỉ tin vào một nửa. recovery Hoặc là, vì vậy một thời gian chờ sẽ không thể phục hồi.
{
"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 được tạo ra và bộ giản đồ của nó additionalProperties:falseVậy một khối được ủy quyền ở đó sẽ bị hỏng hợp đồng và sau đó được viết quá nhiều vào lần chạy máy phát điện tiếp theo.
Một vai không trong CommerceRole không tồn tại. OpsIQ Không bao giờ suy ra từ một tên phẫu thuật, bởi vì một cái tên không phải là một lời hứa.
Chiến dịch phải xuất hiện trong của bạn actions.jsonGiải thích một điều không tồn tại hứa hẹn với khách hàng điều gì đó mà sau đó không làm được gì.
Thời hạn nguy hiểm nhất là sau khi nền tảng đã làm xong việc. mà không cần phải tìm kiếm đất viết của tôi, các lựa chọn duy nhất được thử lại hay bị mất trật tự.
Bất kỳ vai trò thanh toán nào cũng tuyên bố payment_profile với môi trường, webhook_verify sử dụng chính bộ trình bày của nhà cung cấp, và event_mapMột môi trường không được nêu rõ là cách một nhà cung cấp kiểm tra nhận tiền trả trực tiếp.
OpsIQvs a Sự kết hợp giữa hai người.
Một cái bục kiểm toán, ký tên, cho phép bạn tự xoay cái móc câu và hệ thống ống nước hoạt động AI sẽ không bao giờ quay được.
| Khả năng | Tự mình nhảy đi. | OpsIQ |
|---|---|---|
| Thợ ảnh API Thêm móc câu HMAC | Name | ✓ |
| Chạy khô + 24- giờ quay lại thành công. | DIY | ✓ |
| 1m→5mm→30mm→ 2h → 12hnhắc lại | Hàng đợi DIY | ✓ |
| Danh sách hành động (AI không thể phát minh ra cuộc gọi) | — | ✓ |
| Xác nhận chính sách trước hiệu ứng phụ | — | ✓ |
| Phong bì lỗi ổn định + ID yêu cầu | Ghi nhật ký thủ công | ✓ |
| Trực tiếp cho HTTP + tạo ra tùy chọn ứng dụng khách | Tự viết đi | ✓ |
| OpenAPI 3.0.3 Hợp đồng đọc được bằng máy | Có thể | ✓ |
| Người xây dựng sáu giai đoạn + cửa phát hành gói | Xây dựng một công cụchain | ✓ |
| Phím có ổ cắm không gian làm việc và giới hạn giờ | Biến thế | ✓ |
| Cấu hình kết nối: mã nền tảng được cô lập | — | ✓ |
Những câu hỏi của nhà phát triển, trả lời.
Xác thực, hợp đồng, trả lại, thế hệ khách hàng, thử nghiệm an toàn và mô hình kết nối, trước yêu cầu sản xuất đầu tiên.
Authorization: Bearer opq_…Chìa khóa có thể bị hạn chế, hạn chế hoặc chỉ đọc, mang theo phạm vi ít nhất là hàng giờ, tuân thủ giới hạn và có thể được kết nối vào không gian làm việc. X-OpsIQ-Signature, X-OpsIQ-Timestamp, X-OpsIQ-Event và X-OpsIQ-Delivery.hash_hmac('sha256', $rawBody, $secret) và so sánh với tiêu hóa thập lục phân của nó X-OpsIQ-Signature dùng hash_equalsKiểm tra X-OpsIQ-Timestamp trong cửa sổ quay lại và sử dụng X-OpsIQ-Delivery Như là bộ nhận dạng giao hàng theo dõi.dry_run Khi hành động mà hợp đồng tạo ra hỗ trợ nó, chạy kiểm tra kết nối của Người xây dựng, thanh tra tập tin tạo ra nó, và vượt qua gói tùy biến và thả cổng trước khi xử lý kết nối.settings.jsonTùy chọn actions.jsonNgười xây dựng sân khấu lắp ráp nó; người đăng ký phát hiện ra nó; sự phù hợp và giải phóng các cổng có hiệu lực.