* 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.
16 KiB
Compliance & Audit (Latviešu)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇮🇳 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
Patiesības avots:
src/lib/compliance/,src/app/api/compliance/Pēdējoreiz atjaunināts: 2026-06-28 — v3.8.40
OmniRoute reģistrē administratīvās darbības, autentifikācijas notikumus, pakalpojumu sniedzēju akreditācijas datu dzīves cikla izmaiņas un MCP rīku izsaukumus SQLite audita tabulās. Šajā lapā ir aprakstīts, kas tiek reģistrēts, kur dati atrodas, cik ilgi tie tiek glabāti, kā API atslēgām var atteikties no reģistrēšanas un kā veikt datu vaicājumus.
Implementācija atrodas failos src/lib/compliance/index.ts (T-43 — „Atbilstības
kontroles”) un src/lib/compliance/providerAudit.ts. Audita ierakstīšana nekad neizraisa izņēmumu:
jebkuras kļūmes gadījumā izsaukums tiek klusi ignorēts, lai audita reģistrēšana nevarētu pārtraukt
galveno pieprasījuma plūsmu.
Kas tiek reģistrēts
Administratīvā audita notikumi (audit_log)
Katrs logAuditEvent({ action, actor, target, details, ... }) izsaukums izveido
vienu rindu. Darbību virknes atbilst domain.verb (vai domain.verb.outcome)
formātam. Avota kokā apstiprinātie darbību tipi ietver:
| Darbība | Avots |
|---|---|
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 |
Katrā ierakstā tiek saglabāti action, actor (noklusējuma vērtība ir "system"), target,
details/metadata (JSON), ip_address, resource_type, status,
request_id un timestamp. Sensitīvās atslēgas (apiKey, accessToken,
refreshToken, password, viss, kas atbilst *token/*secret/*apikey,
u.c.) pirms rindas ierakstīšanas tiek rekursīvi aizstātas ar "[redacted]".
MCP rīku izsaukumi (mcp_tool_audit)
Katrs MCP rīka izsaukums ieraksta rindu, izmantojot
open-sse/mcp-server/audit.ts. Shēma (no
src/lib/db/migrations/002_mcp_a2a_tables.sql):
| Kolonna | Piezīmes |
|---|---|
id |
automātiski pieaugoša vērtība |
tool_name |
MCP rīka identifikators |
input_hash |
ievades sha256 (lietderīgā slodze netiek glabāta) |
output_summary |
īss, saīsināts kopsavilkums |
duration_ms |
kopējais izpildes laiks |
api_key_id |
izsaucējs (var būt nulle) |
success |
1 / 0 |
error_code |
beigu kļūdas kods neveiksmes gadījumā |
created_at |
ISO laikspiedols |
Pieprasījumu / lietojuma žurnāli
Šī ir darbības telemetrija (nevis tikai administratīvais audits), taču tai tiek izmantots tas pats glabāšanas termiņa pārvaldības process:
usage_history— apkopots lietojums katram pieprasījumamcall_logs— pilns žurnāls katram pieprasījumam (uz to attiecas rindu skaita ierobežojums; skatiet tālāk)proxy_logs— starpniekservera datplūsmas žurnāls (uz to attiecas rindu skaita ierobežojums)request_detail_logs— mantotais detalizētais pieprasījumu žurnāls (joprojām tiek tīrīts, ja pastāv)
Krātuves shēma
audit_log tiek izveidota atlikti, pirmajā ensureAuditLogSchema() lietošanas reizē:
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
);
Indeksi tiek izveidoti laukiem timestamp, action, actor, resource_type,
status un request_id. Trūkstošās kolonnas mantotajās datubāzēs pēc
nepieciešamības tiek pievienotas, izmantojot ALTER TABLE.
Saglabāšana un tīrīšana
Tiek ievēroti divi atsevišķi saglabāšanas periodi:
| Vides mainīgais | Noklusējums | Attiecas uz |
|---|---|---|
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 |
call_logs rindu skaita ierobežošana |
PROXY_LOGS_TABLE_MAX_ROWS |
100000 |
proxy_logs rindu skaita ierobežošana |
cleanupExpiredLogs() izpilda saglabāšanas perioda pārbaudi. Tā tiek izsaukta
servera startēšanas laikā no src/instrumentation-node.ts. Katrā izpildes reizē
tiek reģistrēts compliance.cleanup audita notikums ar katrā tabulā izdzēsto
ierakstu skaitu. Starpniekservera un izsaukumu žurnālu ierobežošana tiek veikta
pa partijām (BATCH_SIZE = 5000), lai izvairītos no ilgstošas rakstīšanas
bloķēšanas.
Manuālā pieprasījumu vēstures tīrīšana ir nodalīta no saglabāšanas perioda
tīrīšanas. Pieprasījumu žurnālu lapa izsauc
POST /api/settings/purge-request-history, kas dzēš call_logs, mantotos
request_detail_logs un lokālos pieprasījumu artefaktus mapē
${DATA_DIR}/call_logs/.
Noklusējuma vērtības ir definētas failā src/lib/logEnv.ts
(DEFAULT_APP_LOG_RETENTION_DAYS = 7, DEFAULT_CALL_LOG_RETENTION_DAYS = 7).
noLog atteikšanās opcija (katrai API atslēgai)
API atslēgas var atzīmēt tā, lai to pakārtoto izsaukumu datplūsma netiktu
reģistrēta. Šis karogs atrodas tabulā api_keys (no_log INTEGER DEFAULT 0)
un tiek atspoguļots atmiņā glabātā kopā ātrai piekļuvei kritiskajā izpildes
ceļā.
# Izveido atslēgu bez žurnalēšanas (nepieciešama pārvaldības autentifikācija)
curl -X POST http://localhost:20128/api/keys \
-H "Cookie: auth_token=..." \
-H "Content-Type: application/json" \
-d '{"name": "Privacy key", "noLog": true}'
Palīgfunkcijas (src/lib/compliance/index.ts):
setNoLog(apiKeyId, true|false)— pārslēdz ierakstu atmiņāisNoLog(apiKeyId)— tiek pārbaudīta pieprasījuma izpildes ceļā; ja ieraksta nav, izmanto 30 s kešotu nolasījumu noapi_keys.no_logNO_LOG_API_KEY_IDS(vides mainīgais, vērtības atdalītas ar komatiem) — sistēmas palaišanas laikā tiek iepriekš ielādēts atmiņā glabātajā kopā; noder, ja kolonnu nevar pārslēgt tieši
noLog neietekmē administratīvos audita notikumus (pieteikšanos,
pakalpojumu sniedzēju izmaiņas, MCP rīku izsaukumus u.c.) — atteikšanās attiecas
tikai uz katra pieprasījuma datplūsmas žurnalēšanu.
REST API
| Galapunkts | Metode | Apraksts | Autorizācija |
|---|---|---|---|
/api/compliance/audit-log |
GET |
Lapots administratora audita ierakstu saraksts ar filtriem | management |
/api/mcp/audit |
GET |
Lapots MCP rīku audita ierakstu saraksts | (open-sse) |
/api/mcp/audit/stats |
GET |
Apkopota MCP audita statistika | (open-sse) |
Pašlaik CSV eksportēšanas galapunkts netiek nodrošināts — eksportējiet datus no informācijas paneļa vai vaicājiet SQLite datubāzi tieši.
Vaicājumi /api/compliance/audit-log
Atbalstītie vaicājuma parametri (visi nav obligāti; teksta filtriem tiek izmantota
atbilstības meklēšana LIKE %value%):
action,actor,target,resourceType(vairesource_type),status,requestId(vairequest_id)from/since,to/until— ISO laikspiedolilimit(noklusējums50, minimums1, maksimums500)offset(noklusējums0, maksimums10_000)
Atbilde ir JSON masīvs. Lapošanas metadati tiek atgriezti galvenēs:
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=..."
Informācijas panelis
Informācijas panelī audita dati ir pieejami adresē /dashboard/audit
(src/app/(dashboard)/dashboard/audit/page.tsx). Lapā ir divas cilnes:
- Atbilstība (
ComplianceTab.tsx) — administratora audita notikumi no/api/compliance/audit-log. Filtrēšana pēc notikuma veida, nopietnības pakāpes (informatīvs / brīdinājums / kritisks, atvasināts no darbības un statusa) un datumu diapazona. Nopietnības pakāpe tiek aprēķināta klienta pusē no darbības/statusa virknēm. - MCP (
McpAuditTab.tsx) — MCP rīku audits no/api/mcp/auditar filtrēšanu pēc rīka nosaukuma un izdošanās/neizdošanās.
Abās cilnēs tiek izmantota lapošana ar lapu izmēriem 50 (atbilstība) un 25 (MCP).
Pakalpojumu sniedzēju akreditācijas datu palīgfunkcijas
src/lib/compliance/providerAudit.ts nodrošina datu strukturēšanas palīgfunkcijas, ko izmanto
pakalpojumu sniedzēju pārvaldības maršruti, kad tie ģenerē akreditācijas datu notikumus:
summarizeProviderConnectionForAudit(connection)— noņemapiKey,accessToken,refreshToken,idTokenunproviderSpecificData.consoleApiKey, pirms savienojuma momentuzņēmums tiek ierakstīts laukādetails.getProviderAuditTarget(connection)— izveido stabilu"<provider>:<name|id>"virkni laukamtarget.extractProviderWarnings(...payloads)— pārbauda pakalpojumu sniedzēju atbildes, meklējot politikas/drošības brīdinājumus ([sanitizer],prompt injection detected,content has been filtered,safety filter,policy violation), un atgriež ne vairāk kā 5 atbilstības, katru saīsinot līdz 400 rakstzīmēm.
Ieteicamā prakse
- API atslēgām, kas apstrādā personu identificējošu informāciju (juridisku, medicīnisku u.c.), iestatiet
noLog: true. - Pielāgojiet
APP_LOG_RETENTION_DAYS/CALL_LOG_RETENTION_DAYS, lai nodrošinātu atbilstību savai datu glabāšanas politikai. Noklusējuma 7 dienu periods ir konservatīvs. - Eksportējiet audita tabulu ārpus platformas (
sqlite3 dump) tādā biežumā, kādu pieprasa jūsu atbilstības programma — iebūvēta arhivēšana nav pieejama. - Uzraugiet
auth.login.failedunauth.login.lockedskaitu, lai noteiktu pārlases uzbrukumus. - Pievienojot jaunus administratora galapunktus, izsauciet
logAuditEvent({ ... })ar stabiludomain.verb.outcomedarbības virkni un nododiet pieprasījuma kontekstu, izmantojotgetAuditRequestContext(request), lai IP adrese unrequestIdtiktu reģistrēti automātiski.
Skatiet arī
docs/security/GUARDRAILS.md— PII maskēšana, uzvedņu injekcijadocs/frameworks/MCP-SERVER.md— MCP rīku katalogs un tvērumidocs/reference/ENVIRONMENT.md— pilna vides mainīgo atsauce- Avots:
src/lib/compliance/,src/app/api/compliance/,src/app/api/mcp/audit/,src/lib/logEnv.ts