Files
OmniRoute/docs/i18n/et/docs/security/COMPLIANCE.md
Diego Rodrigues de Sa e Souza 8feea123bb feat(docs): mirror every docs/ page in all 65 locales (#14106)
* feat(docs): mirror every docs/ page in all 65 locales

Extends the documentation mirrors from the 22-page core set (#13940) to
every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors
(6,208 new), language bars rewritten for the full locale list, state
adopted so the blocking drift gate now covers all 152 pages.

run-translation.mjs: an oversized block made only of table rows or list
items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is
cut at item boundaries and rejoined without a blank line — the single
16-40 KB request outlived the backend socket for verbose scripts. 48
older mirrors whose tables had lost rows were retranslated with --force.

* docs(i18n): refresh mirrors for the sources the base changed since the branch cut

Section-level retranslation of the 29 docs (and README.md) whose source
or mirrors moved on release/v3.8.51 during the run, then state adoption;
the drift gate is green again on the merged tree.
2026-09-18 13:16:46 -03:00

15 KiB

Compliance & Audit (Eesti)

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


Tõeallikas: src/lib/compliance/, src/app/api/compliance/ Viimati uuendatud: 2026-06-28 — v3.8.40

OmniRoute salvestab haldustoimingud, autentimissündmused, teenusepakkuja mandaatide elutsükli muudatused ja MCP-tööriistade väljakutsed SQLite'il põhinevatesse audititabelitesse. Sellel lehel kirjeldatakse, mida logitakse, kus andmeid hoitakse, kui kaua neid säilitatakse, kuidas API-võtmed saavad logimisest loobuda ja kuidas andmeid pärida.

Teostus asub failides src/lib/compliance/index.ts (T-43 — „Vastavuskontrollid”) ja src/lib/compliance/providerAudit.ts. Auditi kirjutustoimingud ei väljasta kunagi erindit: mis tahes tõrke korral neelatakse väljakutse vaikselt alla, et auditi logimine ei saaks katkestada peamist päringuvoogu.

Mida logitakse

Haldusauditi sündmused (audit_log)

Iga kutse logAuditEvent({ action, actor, target, details, ... }) loob ühe rea. Toimingustringid järgivad mustrit domain.verb (või domain.verb.outcome). Lähtekoodis kinnitatud toimingutüübid on järgmised:

Toiming Allikas
auth.login.success src/app/api/auth/login/route.ts
auth.login.failed src/app/api/auth/login/route.ts
auth.login.locked src/app/api/auth/login/route.ts
auth.login.error src/app/api/auth/login/route.ts
auth.login.misconfigured src/app/api/auth/login/route.ts
auth.login.setup_required src/app/api/auth/login/route.ts
auth.logout.success src/app/api/auth/logout/route.ts
provider.credentials.created src/app/api/providers/route.ts
provider.credentials.updated src/app/api/providers/[id]/route.ts
provider.credentials.revoked src/app/api/providers/[id]/route.ts
provider.credentials.batch_revoked src/app/api/providers/route.ts
sync.token.created src/app/api/sync/tokens/route.ts
sync.token.revoked src/app/api/sync/tokens/[id]/route.ts
compliance.cleanup src/lib/compliance/index.ts

Iga kirje talletab väljad action, actor (vaikeväärtus on "system"), target, details/metadata (JSON), ip_address, resource_type, status, request_id ja timestamp. Tundlikud võtmed (apiKey, accessToken, refreshToken, password, kõik mustritele *token/*secret/*apikey vastavad võtmed jne) redigeeritakse enne rea kirjutamist rekursiivselt väärtuseks "[redacted]".

MCP-tööriistade kutsed (mcp_tool_audit)

Iga MCP-tööriista väljakutse kirjutab faili open-sse/mcp-server/audit.ts kaudu ühe rea. Skeem (failist src/lib/db/migrations/002_mcp_a2a_tables.sql):

Veerg Märkused
id automaatselt suurenev
tool_name MCP-tööriista identifikaator
input_hash sisendi sha256 (sisendandmeid ei salvestata)
output_summary lühike, kärbitud kokkuvõte
duration_ms tegelik kulunud aeg
api_key_id väljakutsuja (võib olla null)
success 1 / 0
error_code tõrke korral lõplik veakood
created_at ISO ajatempel

Päringu- ja kasutuslogid

Need on käitamise telemeetria (mitte rangelt haldusaudit), kuid kasutavad sama säilituskonveierit:

  • usage_history — päringupõhine kasutuse koondandmestik
  • call_logs — täielik päringupõhine logi (ridade ülempiiriga, vt allpool)
  • proxy_logs — puhverserveri liikluse logi (ridade ülempiiriga)
  • request_detail_logs — pärandlahenduse üksikasjalik päringulogi (kärbitakse endiselt, kui see on olemas)

Salvestusskeem

audit_log luuakse esmakordsel kasutamisel funktsiooni ensureAuditLogSchema() abil viivitusega:

CREATE TABLE IF NOT EXISTS audit_log (
  id            INTEGER PRIMARY KEY AUTOINCREMENT,
  timestamp     TEXT NOT NULL DEFAULT (datetime('now')),
  action        TEXT NOT NULL,
  actor         TEXT NOT NULL DEFAULT 'system',
  target        TEXT,
  details       TEXT,
  ip_address    TEXT,
  resource_type TEXT,
  status        TEXT,
  request_id    TEXT,
  metadata      TEXT
);

Indeksid luuakse veergudele timestamp, action, actor, resource_type, status ja request_id. Pärandandmebaasides puuduvad veerud lisatakse vajaduse korral käsuga ALTER TABLE.

Säilitamine ja puhastamine

Arvestatakse kahe eraldi säilitusperioodiga:

Keskkonnamuutuja Vaikeväärtus Rakendub järgmistele
APP_LOG_RETENTION_DAYS 7 audit_log, mcp_tool_audit
CALL_LOG_RETENTION_DAYS 7 usage_history, call_logs, proxy_logs, request_detail_logs
CALL_LOGS_TABLE_MAX_ROWS 100000 Tabeli call_logs kärpimine ridade ülempiirini
PROXY_LOGS_TABLE_MAX_ROWS 100000 Tabeli proxy_logs kärpimine ridade ülempiirini

cleanupExpiredLogs() käivitab säilitusreeglite rakendamise. See kutsutakse serveri käivitamisel välja failist src/instrumentation-node.ts. Iga käivitus logib auditisündmuse compliance.cleanup koos iga tabeli kustutatud ridade arvuga. Puhverserveri- ja kõnelogide kärpimine toimub pakkidena (BATCH_SIZE = 5000), et vältida pikaajalisi kirjutuslukke.

Päringuajaloo käsitsi puhastamine on säilitusreeglitest eraldiseisev. Päringulogide leht kutsub välja POST /api/settings/purge-request-history, mis kustutab tabelid call_logs, pärandtabeli request_detail_logs ja kohalikud päringuartefaktid asukohas ${DATA_DIR}/call_logs/.

Vaikeväärtused on määratletud failis src/lib/logEnv.ts (DEFAULT_APP_LOG_RETENTION_DAYS = 7, DEFAULT_CALL_LOG_RETENTION_DAYS = 7).

Logimisest loobumine noLog abil (API-võtme kohta)

API-võtmeid saab märgistada nii, et nende kaudu tehtud edasisi kutseid ei logita. Lipp asub tabelis api_keys (no_log INTEGER DEFAULT 0) ja see kopeeritakse kiireks päringute töötlemiseks mälus asuvasse hulka.

# Logimiseta võtme loomine (nõutav on halduse autentimine)
curl -X POST http://localhost:20128/api/keys \
  -H "Cookie: auth_token=..." \
  -H "Content-Type: application/json" \
  -d '{"name": "Privacy key", "noLog": true}'

Abifunktsioonid (src/lib/compliance/index.ts):

  • setNoLog(apiKeyId, true|false) — lülitab mälus oleva kirje sisse või välja
  • isNoLog(apiKeyId) — kontrollitakse päringu töötlemisel; kui kirjet pole, kasutatakse 30 sekundiks vahemällu salvestatud väärtust väljast api_keys.no_log
  • NO_LOG_API_KEY_IDS (keskkonnamuutuja, komadega eraldatud) — laaditakse käivitamisel eelnevalt mälus asuvasse hulka; kasulik juhul, kui veergu ei saa otse muuta

noLog ei mõjuta administratiivseid auditisündmusi (sisselogimine, teenusepakkuja muudatused, MCP-tööriistade kutsed jne) — loobumine kehtib ainult päringupõhise liikluse logimisele.

REST API

Lõpp-punkt Meetod Kirjeldus Autentimine
/api/compliance/audit-log GET Filtritega lehekülgjaotusega administraatori auditikirjed management
/api/mcp/audit GET Lehekülgjaotusega MCP tööriista auditikirjed (open-sse)
/api/mcp/audit/stats GET Koondatud MCP auditistatistika (open-sse)

Praegu CSV-eksportimise lõpp-punkti ei pakuta — eksportige andmed töölaualt või tehke päring otse SQLite'i andmebaasi.

Päringud lõpp-punktile /api/compliance/audit-log

Toetatud päringuparameetrid (kõik on valikulised; kõik tekstifiltrid kasutavad vastendamist LIKE %value%):

  • action, actor, target, resourceType (või resource_type), status, requestId (või request_id)
  • from / since, to / until — ISO ajatemplid
  • limit (vaikimisi 50, min 1, max 500)
  • offset (vaikimisi 0, max 10_000)

Vastus on JSON-massiiv. Lehekülgjaotuse metaandmed tagastatakse päistes: x-total-count, x-page-limit, x-page-offset.

curl "http://localhost:20128/api/compliance/audit-log?action=provider.credentials&from=2026-05-01" \
  -H "Cookie: auth_token=..."

Töölaud

Töölaual on auditiandmed saadaval aadressil /dashboard/audit (src/app/(dashboard)/dashboard/audit/page.tsx). Lehel on kaks vahekaarti:

  • Vastavus (ComplianceTab.tsx) — administraatori auditisündmused lõpp-punktist /api/compliance/audit-log. Filtreerimine sündmuse tüübi, raskusastme (teave / hoiatus / kriitiline, tuletatud toimingust + olekust) ja kuupäevavahemiku järgi. Raskusaste arvutatakse kliendi poolel toimingu- ja olekusõnede põhjal.
  • MCP (McpAuditTab.tsx) — MCP tööriista audit lõpp-punktist /api/mcp/audit, koos filtritega tööriista nime ja õnnestumise/ebaõnnestumise järgi.

Mõlemad vahekaardid kasutavad lehekülgjaotust lehesuurustega 50 (vastavus) ja 25 (MCP).

Pakkuja identimisteabe abifunktsioonid

src/lib/compliance/providerAudit.ts pakub vormindamise abifunktsioone, mida pakkujate haldamise marsruudid kasutavad identimisteabe sündmuste väljastamisel:

  • summarizeProviderConnectionForAudit(connection) — eemaldab väljad apiKey, accessToken, refreshToken, idToken ja providerSpecificData.consoleApiKey, enne kui ühenduse hetktõmmis kirjutatakse väljale details.
  • getProviderAuditTarget(connection) — koostab välja target jaoks stabiilse sõne "<provider>:<name|id>".
  • extractProviderWarnings(...payloads) — otsib pakkuja vastustest poliitika-/ohutushoiatusi ([sanitizer], prompt injection detected, content has been filtered, safety filter, policy violation) ja tagastab kuni 5 vastet, millest igaüks kärbitakse 400 märgini.

Parimad tavad

  • Märgistage isikuandmeid töötlevad API-võtmed (õigus-, meditsiiniandmed jne) seadega noLog: true.
  • Kohandage APP_LOG_RETENTION_DAYS / CALL_LOG_RETENTION_DAYS vastavalt oma säilitamispoliitikale. Vaikimisi 7-päevane periood on konservatiivne.
  • Eksportige audititabel platvormiväliselt (sqlite3 dump) teie vastavusprogrammis nõutud sagedusega — sisseehitatud arhiveerimisvõimalust pole.
  • Jälgige auth.login.failed ja auth.login.locked arve jõurünnete tuvastamiseks.
  • Uute administraatori lõpp-punktide lisamisel kutsuge välja logAuditEvent({ ... }) stabiilse toimingusõnega domain.verb.outcome ning edastage päringu kontekst funktsiooni getAuditRequestContext(request) kaudu, et IP ja requestId jäädvustataks automaatselt.

Vaata ka