Poarta de protecție a sistemului
Politica efectivă a organizației pentru excepțiile de la verificările de protecție și evenimentul de audit trimis când o excepție este acordată sau revocată.
Două endpoint-uri susțin poarta de protecție a sistemului. Ambele cer o cheie API codai_ ca token Bearer.
GET /v1/policy întoarce { "os_gate": { "allow_override": boolean } }, combinat peste toate organizațiile din care faci parte: dacă oricare dintre ele interzice excepțiile, răspunsul este false. Răspunsul are Cache-Control: private, max-age=300; clienții îl păstrează în cache și folosesc ultima valoare offline. O pană a bazei de date dă 503 policy_unavailable — păstrează valoarea din cache, nu presupune niciodată o valoare permisivă.
POST /v1/os-gate/events înregistrează o acordare sau o revocare în jurnalul de audit al contului (os_gate.override). Corpul strict conține doar action, checks (între 1 și 16 id-uri de verificări cunoscute), surface, app_version și at; niciun detaliu de detecție. Răspunde 202 { "ok": true }.
Aceleași operații există în SDK-uri: client.osGate.policy() / client.osGate.recordEvent(event) în TypeScript și client.os_gate.policy() / client.os_gate.record_event(...) în Python. Serverul MCP expune politica prin unealta os_gate_policy, doar pentru citire (setul account); evenimentul de audit este telemetrie a dispozitivului și nu are unealtă MCP.
bearerAuthAutorizareBearer <codai_…>O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).
x-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Politica efectivă pentru apelant.
application/json- response
os_gate*curl -X GET 'https://ai.codai.ro/v1/policy'{ "os_gate": { "allow_override": true }}bearerAuthAutorizareBearer <codai_…>O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).
x-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Evenimentul de excepție, așa cum a fost înregistrat pe dispozitiv.
application/json- body
action*stringDacă utilizatorul a acordat sau a revocat excepția.
"granted""revoked"checks*array<>Id-urile verificărilor acoperite de excepție (spec packages/agent-core/spec/os-gate.json).
1 <= items <= 16surface*stringAplicația codai pe care excepția a fost acordată sau revocată.
"desktop""headless""codaid""phone""mobile_agent""wear""vscode"app_version*stringVersiunea aplicației care a înregistrat evenimentul.
1 <= length <= 64at*stringMomentul în care utilizatorul a acordat sau a revocat excepția (ISO 8601).
date-timeEvenimentul a fost acceptat în jurnalul de audit.
application/json- response
ok*booleancurl -X POST 'https://ai.codai.ro/v1/os-gate/events' \ -H 'Content-Type: application/json' \ -d '{ "action": "granted", "checks": [ "win.uac_off" ], "surface": "desktop", "app_version": "0.9.4", "at": "2026-10-19T21:00:00Z"}'{ "ok": true}