# Security Policy (සිංහල) 🌐 **Languages:** 🇺🇸 [English](../../../SECURITY.md) · 🇪🇹 [am](../am/SECURITY.md) · 🇸🇦 [ar](../ar/SECURITY.md) · 🇦🇿 [az](../az/SECURITY.md) · 🇧🇬 [bg](../bg/SECURITY.md) · 🇧🇩 [bn](../bn/SECURITY.md) · 🇧🇦 [bs](../bs/SECURITY.md) · 🇨🇿 [cs](../cs/SECURITY.md) · 🇩🇰 [da](../da/SECURITY.md) · 🇩🇪 [de](../de/SECURITY.md) · 🇬🇷 [el](../el/SECURITY.md) · 🇪🇸 [es](../es/SECURITY.md) · 🇪🇪 [et](../et/SECURITY.md) · 🇮🇷 [fa](../fa/SECURITY.md) · 🇫🇮 [fi](../fi/SECURITY.md) · 🇫🇷 [fr](../fr/SECURITY.md) · 🇮🇪 [ga](../ga/SECURITY.md) · 🇮🇳 [gu](../gu/SECURITY.md) · 🇳🇬 [ha](../ha/SECURITY.md) · 🇮🇱 [he](../he/SECURITY.md) · 🇮🇳 [hi](../hi/SECURITY.md) · 🇭🇷 [hr](../hr/SECURITY.md) · 🇭🇺 [hu](../hu/SECURITY.md) · 🇦🇲 [hy](../hy/SECURITY.md) · 🇮🇩 [id](../id/SECURITY.md) · 🇳🇬 [ig](../ig/SECURITY.md) · 🇮🇹 [it](../it/SECURITY.md) · 🇯🇵 [ja](../ja/SECURITY.md) · 🇬🇪 [ka](../ka/SECURITY.md) · 🇰🇭 [km](../km/SECURITY.md) · 🇮🇳 [kn](../kn/SECURITY.md) · 🇰🇷 [ko](../ko/SECURITY.md) · 🇱🇹 [lt](../lt/SECURITY.md) · 🇱🇻 [lv](../lv/SECURITY.md) · 🇮🇳 [ml](../ml/SECURITY.md) · 🇮🇳 [mr](../mr/SECURITY.md) · 🇲🇾 [ms](../ms/SECURITY.md) · 🇲🇹 [mt](../mt/SECURITY.md) · 🇲🇲 [my](../my/SECURITY.md) · 🇳🇵 [ne](../ne/SECURITY.md) · 🇳🇱 [nl](../nl/SECURITY.md) · 🇳🇴 [no](../no/SECURITY.md) · 🇮🇳 [or](../or/SECURITY.md) · 🇮🇳 [pa](../pa/SECURITY.md) · 🇵🇭 [phi](../phi/SECURITY.md) · 🇵🇱 [pl](../pl/SECURITY.md) · 🇵🇹 [pt](../pt/SECURITY.md) · 🇧🇷 [pt-BR](../pt-BR/SECURITY.md) · 🇷🇴 [ro](../ro/SECURITY.md) · 🇷🇺 [ru](../ru/SECURITY.md) · 🇸🇰 [sk](../sk/SECURITY.md) · 🇸🇮 [sl](../sl/SECURITY.md) · 🇷🇸 [sr](../sr/SECURITY.md) · 🇸🇪 [sv](../sv/SECURITY.md) · 🇰🇪 [sw](../sw/SECURITY.md) · 🇮🇳 [ta](../ta/SECURITY.md) · 🇮🇳 [te](../te/SECURITY.md) · 🇹🇭 [th](../th/SECURITY.md) · 🇹🇷 [tr](../tr/SECURITY.md) · 🇺🇦 [uk-UA](../uk-UA/SECURITY.md) · 🇵🇰 [ur](../ur/SECURITY.md) · 🇺🇿 [uz](../uz/SECURITY.md) · 🇻🇳 [vi](../vi/SECURITY.md) · 🇳🇬 [yo](../yo/SECURITY.md) · 🇨🇳 [zh-CN](../zh-CN/SECURITY.md) · 🇹🇼 [zh-TW](../zh-TW/SECURITY.md) --- ## දුර්වලතා වාර්තා කිරීම OmniRoute තුළ ආරක්ෂක දුර්වලතාවක් ඔබ සොයා ගන්නේ නම්, කරුණාකර එය වගකීමෙන් යුතුව වාර්තා කරන්න: 1. පොදු GitHub ගැටලුවක් **විවෘත නොකරන්න** 2. [GitHub Security Advisories](https://github.com/diegosouzapw/OmniRoute/security/advisories/new) භාවිත කරන්න 3. ඇතුළත් කරන්න: විස්තරය, ප්රතිනිෂ්පාදන පියවර සහ විය හැකි බලපෑම ## ප්රතිචාර කාලරාමුව | අදියර | ඉලක්කය | | ------------------------ | ------------------------------- | | පිළිගැනීම | පැය 48 | | ප්රමුඛතා නිර්ණය සහ ඇගයීම | ව්යාපාරික දින 5 | | පැච් නිකුතුව | ව්යාපාරික දින 14 (අතිශය වැදගත්) | ## සහාය දක්වන අනුවාද | අනුවාදය | සහාය තත්ත්වය | | ------- | ---------------- | | 3.8.x | ✅ සක්රිය | | 3.7.x | ✅ ආරක්ෂක සහාය | | < 3.7.0 | ❌ සහාය නොදක්වයි | --- ## ආරක්ෂක ගෘහනිර්මාණය OmniRoute බහු-ස්තර ආරක්ෂක ආකෘතියක් ක්රියාත්මක කරයි: ``` ඉල්ලීම → CORS → Authz නළමාර්ගය (වර්ගීකරණය → ප්රතිපත්ති → බලාත්මක කිරීම) → ආරක්ෂක සීමා (PII ආවරණකය, ප්රොම්ප්ට් එන්නත් කිරීම, දෘශ්ය පාලම) → අනුපාත සීමාකය → පරිපථ බිඳුම → සිසිලන කාලය → ආකෘති අගුලු දැමීම → සැපයුම්කරු ``` ### 🔐 සත්යාපනය සහ අවසර දීම | විශේෂාංගය | ක්රියාත්මක කිරීම | | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **උපකරණ පුවරු පිවිසුම** | JWT ටෝකන (HttpOnly කුකීස්) සහිත මුරපද-පාදක සත්යාපනය | | **API යතුරු සත්යාපනය** | CRC වලංගුකරණය සහිත HMAC-අත්සන් කළ යතුරු | | **OAuth 2.0 + PKCE** | සැපයුම්කරුට විශේෂිත බ්රවුසර/උපාංග OAuth සඳහා සහාය ඇති තැන්වල PKCE භාවිත කරයි; ආයාතයට පමණක් වූ Devin අක්තපත්ර වෙනම හසුරුවනු ලැබේ. | | **ටෝකන නැවුම් කිරීම** | කල් ඉකුත් වීමට පෙර ස්වයංක්රීය OAuth ටෝකන නැවුම් කිරීම | | **ආරක්ෂිත කුකීස්** | HTTPS පරිසර සඳහා `AUTH_COOKIE_SECURE=true` | | **Authz නළමාර්ගය** | මාර්ග වර්ගීකරණය (PUBLIC / CLIENT_API / MANAGEMENT) — `docs/architecture/AUTHZ_GUIDE.md` බලන්න | | **මාර්ග ආරක්ෂක ස්තර** | කළමනාකරණ මාර්ග සඳහා ස්තර 3ක ආකෘතිය (LOCAL_ONLY / ALWAYS_PROTECTED / MANAGEMENT) — `docs/security/ROUTE_GUARD_TIERS.md` බලන්න | | **Manage-Scope MCP** | දුරස්ථ `/api/mcp/*` ප්රවේශය `manage` විෂය පථය සහිත API යතුරු මඟින් සීමා කර ඇත; `/api/cli-tools/runtime/*` දැඩි loopback ප්රවේශයට පමණක් සීමා වේ. ROUTE_GUARD_TIERS බලන්න | | **MCP විෂය පථ** | සියුම් විෂය පථ 32ක් (read:health, write:combos, execute:completions, ආදිය) — `docs/frameworks/MCP-SERVER.md` බලන්න | ### 🛡️ නිශ්චල දත්ත සංකේතනය SQLite තුළ ගබඩා කර ඇති සියලු සංවේදී දත්ත, scrypt යතුරු ව්යුත්පන්න කිරීම සමඟ **AES-256-GCM** භාවිතයෙන් සංකේතනය කර ඇත: - API යතුරු, ප්රවේශ ටෝකන, නැවුම් කිරීමේ ටෝකන සහ ID ටෝකන - අනුවාදගත ආකෘතිය: `enc:v1:::` - `STORAGE_ENCRYPTION_KEY` සකසා නොමැති විට සෘජු-හුවමාරු ප්රකාරය (සරල පෙළ) ```bash # සංකේතන යතුර ජනනය කරන්න: STORAGE_ENCRYPTION_KEY=$(openssl rand -hex 32) ``` ### 🛡️ ආරක්ෂක සීමා රාමුව OmniRoute ප්රමුඛතාව අනුව අනුපිළිවෙළට සකස් කළ, ගොඩනඟා ඇති ආරක්ෂක සීමා 3ක් සහිත, ක්ෂණිකව නැවත පූරණය කළ හැකි **ආරක්ෂක සීමා රෙජිස්ට්රියක්** (`src/lib/guardrails/`) සමඟ පැමිණේ: | ආරක්ෂක සීමාව | ප්රමුඛතාව | අරමුණ | | ------------------ | --------- | ---------------------------------------------------------------------------------------------- | | `vision-bridge` | 5 | රූප පිළිබඳ අවබෝධයක් සහිත විස්තර මඟින් දෘශ්ය නොවන ආකෘති සම්බන්ධ කරයි; රූප URL සඳහා SSRF ආරක්ෂාව | | `pii-masker` | 10 | ඇමතුමට පෙර සහ පසු PII සංස්කරණය (විද්යුත් තැපැල්, දුරකථන, CPF, CNPJ, ක්රෙඩිට් කාඩ්පත්, SSN) | | `prompt-injection` | 20 | අභිබවා යාම/භූමිකා පැහැරගැනීම/jailbreak/කාන්දු වීමේ රටා හඳුනා ගනී | අභිරුචි ආරක්ෂක සීමා `registerGuardrail(new MyGuardrail())` හරහා ලියාපදිංචි වේ. ආකෘතිය fail-open වේ (ව්යතිරේක කිසිවිටෙක ගමනාගමනය අවහිර නොකරයි). එක් එක් ඉල්ලීම සඳහා `x-omniroute-disabled-guardrails` ශීර්ෂකය හරහා ඉවත් විය හැක. → [`docs/security/GUARDRAILS.md`](docs/security/GUARDRAILS.md) බලන්න. ### 🧠 ප්රොම්ප්ට් එන්නත් කිරීම් ආරක්ෂකය LLM ඉල්ලීම් තුළ ප්රොම්ප්ට් එන්නත් කිරීමේ රටා හඳුනා ගන්නා, උපරිම උත්සාහයක් දරන හියුරිස්ටික් මධ්යස්ථ මෘදුකාංගයකි. **මෙය සම්පූර්ණ ප්රොම්ප්ට්-එන්නත් කිරීම් ෆයර්වෝලයක් නොවේ** — වැරදි ධනාත්මක ප්රතිඵල (හානිකර නොවන චරිත/RPG ප්රොම්ප්ට්) සහ වැරදි ඍණාත්මක ප්රතිඵල (leetspeak, පරතර යෙදීම, ඉංග්රීසි නොවන රටා) ඇති කළ හැක. | රටා වර්ගය | බරපතළභාවය | උදාහරණය | | -------------------- | --------- | --------------------------------------- | | පද්ධතිය අභිබවා යාම | ඉහළ | "පෙර සියලු උපදෙස් නොසලකා හරින්න" | | භූමිකා පැහැරගැනීම | මධ්යම | "ඔබ දැන් DAN ය, ඔබට ඕනෑම දෙයක් කළ හැක" | | පරිසීමක එන්නත් කිරීම | ඉහළ | සන්දර්භ සීමා බිඳීමට කේතනය කළ වෙන්කාරක | | DAN/Jailbreak | මධ්යම | දන්නා jailbreak ප්රොම්ප්ට් රටා | | උපදෙස් කාන්දුව | ඉහළ | "ඔබේ පද්ධති ප්රොම්ප්ට් එක මට පෙන්වන්න" | | කේතන මඟහැරීම | මධ්යම | base64/rot13/hex විකේතනය + උපදෙස් මූලපද | `block` ප්රකාරයේදී අවහිර කරනු ලබන්නේ **ඉහළ** බරපතළභාවයකින් යුතු හඳුනාගැනීම් පමණි. මධ්යම-බරපතළභාවයකින් යුතු කාණ්ඩ ලොග් කරනු ලබන නමුත් `sanitizeRequest` මඟින් කිසිවිටෙක අවහිර නොකෙරේ. උපකරණ පුවරුව (සැකසුම් → ආරක්ෂාව) හෝ `.env` හරහා වින්යාස කරන්න: ```env INPUT_SANITIZER_ENABLED=true INPUT_SANITIZER_MODE=block # warn | block (එන්නත් කිරීමේ ප්රතිපත්තිය; පැරණි "redact" මඟින් එන්නත් කළ පෙළ ඉවත් නොකරයි) INPUT_SANITIZER_BLOCK_THRESHOLD=high # high (පෙරනිමි) | medium | low — මෙම මට්ටමේ හෝ ඊට ඉහළ බරපතළතා block ප්රකාරයේදී අවහිර කෙරේ ``` ### 🔒 PII සංස්කරණය පුද්ගලිකව හඳුනාගත හැකි තොරතුරු ස්වයංක්රීයව හඳුනා ගැනීම සහ විකල්ප ලෙස සංස්කරණය කිරීම: | PII වර්ගය | රටාව | ප්රතිස්ථාපනය | | ------------------ | --------------------- | ------------------ | | ඊමේල් | `user@domain.com` | `[EMAIL_REDACTED]` | | CPF (බ්රසීලය) | `123.456.789-00` | `[CPF_REDACTED]` | | CNPJ (බ්රසීලය) | `12.345.678/0001-00` | `[CNPJ_REDACTED]` | | ණයපත | `4111-1111-1111-1111` | `[CC_REDACTED]` | | දුරකථන අංකය | `+55 11 99999-9999` | `[PHONE_REDACTED]` | | SSN (එක්සත් ජනපදය) | `123-45-6789` | `[SSN_REDACTED]` | ```env PII_REDACTION_ENABLED=true # PII නැවත ලිවීම ඉල්ලන්න; INPUT_SANITIZER_MODE වෙතින් ස්වාධීන වේ PII_RESPONSE_SANITIZATION=true # විකල්පයි: සේවාදායකයින් වෙත ආපසු ලබා දෙන සැපයුම්කරු ප්රතිචාරවල PII සඟවන්න ``` ### 🌐 ජාල ආරක්ෂාව | විශේෂාංගය | විස්තරය | | ------------------------ | --------------------------------------------------------------------------------------------- | | **CORS** | පැහැදිලි හරස්-මූලාශ්ර අවසර ලැයිස්තුව (`CORS_ALLOWED_ORIGINS`; පැරණි `CORS_ORIGIN`) | | **IP පෙරීම** | උපකරණ පුවරුවේ IP පරාස සඳහා අවසර ලැයිස්තුව/අවහිර ලැයිස්තුව | | **අනුපාත සීමාකරණය** | ස්වයංක්රීය පසුබැසීම සහිත, එක් එක් සැපයුම්කරු සඳහා අනුපාත සීමා | | **Anti-Thundering Herd** | Mutex + එක් එක් සම්බන්ධතාව සඳහා අගුලු දැමීම මඟින් දාමගත 502 දෝෂ වළක්වයි | | **TLS ඇඟිලි සලකුණ** | බොට් හඳුනාගැනීම අඩු කිරීම සඳහා බ්රවුසරයක් වැනි TLS ඇඟිලි සලකුණක් අනුකරණය කිරීම | | **CLI ඇඟිලි සලකුණ** | ස්වදේශීය CLI අත්සන්වලට ගැළපෙන පරිදි එක් එක් සැපයුම්කරු සඳහා ශීර්ෂක/අන්තර්ගත අනුපිළිවෙළ සැකසීම | ### 🔌 ප්රත්යස්ථතාව සහ ලබාගත හැකි බව | විශේෂාංගය | විස්තරය | | ---------------------- | ------------------------------------------------------------------------------------------------- | | **පරිපථ බිඳිනය** | එක් එක් සැපයුම්කරු සඳහා තත්ත්ව 3ක් (වසා ඇත → විවෘතයි → අර්ධ-විවෘතයි), SQLite තුළ ස්ථිරව ගබඩා කෙරේ | | **ඉල්ලීම් ඒකතාව** | අනුපිටපත් ඉල්ලීම් සඳහා තත්පර 5ක අනුපිටපත් ඉවත් කිරීමේ කාල කවුළුව | | **ඝාතීය පසුබැසීම** | වැඩිවන ප්රමාදයන් සමඟ ස්වයංක්රීයව නැවත උත්සාහ කිරීම | | **සෞඛ්ය උපකරණ පුවරුව** | සැපයුම්කරුවන්ගේ සෞඛ්ය තත්ත්වය තත්ය කාලීනව අධීක්ෂණය කිරීම | ### 📋 අනුකූලතාව | විශේෂාංගය | විස්තරය | | ------------------------- | --------------------------------------------------------------------- | | **ලොග් රඳවා තබාගැනීම** | `CALL_LOG_RETENTION_DAYS` පසු ස්වයංක්රීයව පිරිසිදු කිරීම | | **ලොග් නොකිරීමේ විකල්පය** | එක් එක් API යතුරේ `noLog` සලකුණ ඉල්ලීම් ලොග් කිරීම අක්රිය කරයි | | **විගණන ලොගය** | පරිපාලන ක්රියා `audit_log` වගුවේ නිරීක්ෂණය කෙරේ | | **MCP විගණනය** | සියලු MCP මෙවලම් ඇමතුම් සඳහා SQLite-පාදක විගණන ලොග්කරණය | | **Zod වලංගුකරණය** | මොඩියුලය පූරණය වන විට සියලු API ආදාන Zod v4 යෝජනා ක්රම සමඟ වලංගු කෙරේ | --- ## අවශ්ය පරිසර විචල්ය සේවාදායකය ආරම්භ කිරීමට පෙර සියලු රහස් අගයන් සකසා තිබිය යුතුය. ඒවා නොමැති හෝ දුර්වල නම් සේවාදායකය **වහාම අසාර්ථක වනු ඇත**. ```bash # අනිවාර්යයි — මේවා නොමැතිව සේවාදායකය ආරම්භ නොවේ: JWT_SECRET=$(openssl rand -base64 48) # අවම වශයෙන් අක්ෂර 32ක් API_KEY_SECRET=$(openssl rand -hex 32) # අවම වශයෙන් අක්ෂර 16ක් # නිර්දේශිතයි — ගබඩා කර තිබියදී සංකේතනය සක්රීය කරයි: STORAGE_ENCRYPTION_KEY=$(openssl rand -hex 32) ``` සේවාදායකය `changeme`, `secret`, හෝ `password` වැනි දුර්වල බව දන්නා අගයන් සක්රියව ප්රතික්ෂේප කරයි. --- ## Docker ආරක්ෂාව - නිෂ්පාදන පරිසරයේදී root නොවන පරිශීලකයෙකු භාවිත කරන්න - රහස් කියවීමට පමණක් හැකි volumes ලෙස mount කරන්න - `.env` ගොනු කිසිවිටෙක Docker images තුළට පිටපත් නොකරන්න - සංවේදී ගොනු බැහැර කිරීමට `.dockerignore` භාවිත කරන්න - HTTPS පිටුපස තිබෙන විට `AUTH_COOKIE_SECURE=true` සකසන්න ```bash docker run -d \ --name omniroute \ --restart unless-stopped \ --read-only \ -p 20128:20128 \ -v omniroute-data:/app/data \ -e JWT_SECRET="$(openssl rand -base64 48)" \ -e API_KEY_SECRET="$(openssl rand -hex 32)" \ -e STORAGE_ENCRYPTION_KEY="$(openssl rand -hex 32)" \ diegosouzapw/omniroute:latest ``` --- ## පරායත්තතා - `npm audit` නිතිපතා ධාවනය කරන්න (`npm run audit:deps` මඟින් ප්රධාන + electron ආවරණය කරයි) - පරායත්තතා යාවත්කාලීනව තබාගන්න - commit කිරීමට පෙර සිදුකරන පරීක්ෂණ සඳහා ව්යාපෘතිය `husky` + `lint-staged` භාවිත කරයි (lint-staged + check-docs-sync + check:any-budget:t11) - සෑම push කිරීමකදීම CI pipeline එක ESLint ආරක්ෂක නීති ධාවනය කරයි (`no-eval`, `no-implied-eval`, `no-new-func` = දෝෂයකි) - Zod හරහා module එක load වන අවස්ථාවේදී provider නියතයන් වලංගු කරයි (`src/shared/validation/schemas.ts`) - පෙරනිමියෙන් ආරක්ෂිත පුස්තකාල භාවිත කරයි: `dompurify` / `isomorphic-dompurify` (XSS), `jose` (JWT), `better-sqlite3` (parameterized queries නිසා SQLi අවදානමක් නැත), `bcryptjs` (මුරපද hashing කිරීම) ## දැඩි ආරක්ෂක නීති මෙම නීති මෙවලම් සහ සමාලෝචකයන් විසින් බලාත්මක කරනු ලැබේ: 1. **රහස් කිසිවිටෙක commit නොකරන්න** — `.env` gitignore කර ඇත; `.env.example` යනු අච්චුවයි (literal අගයන් නොමැත, comments පමණි — පහත PUBLIC_CREDS.md බලන්න) 2. **`eval()`, `new Function()`, හෝ implied eval කිසිවිටෙක භාවිත නොකරන්න** — ESLint මෙය බලාත්මක කරයි 3. පැහැදිලි operator අනුමැතියක් නොමැතිව **Husky hooks කිසිවිටෙක මඟ නොහරින්න** (`--no-verify`, `--no-gpg-sign`) 4. **routes තුළ raw SQL කිසිවිටෙක නොලියන්න** — සෑම විටම `src/lib/db/` හරහා යන්න (parameterized) 5. **සෑම විටම Zod සමඟ inputs වලංගු කරන්න** — `src/shared/validation/schemas.ts` 6. **සෑම විටම upstream headers පිරිසිදු කරන්න** — denylist එක `src/shared/constants/upstreamHeaders.ts` තුළ ඇත 7. **ගබඩා කර තිබියදී credentials සංකේතනය කරන්න** — `src/lib/db/encryption.ts` හරහා AES-256-GCM 8. **`resolvePublicCred()` හරහා පොදු upstream OAuth identifiers ලබාගන්න** — `AIza…` / `GOCSPX-…` / `…apps.googleusercontent.com` literal අගයන් source තුළ කිසිවිටෙක ඇතුළත් නොකරන්න. [`docs/security/PUBLIC_CREDS.md`](docs/security/PUBLIC_CREDS.md) බලන්න. 9. **`buildErrorBody()` / `sanitizeErrorMessage()` හරහා දෝෂ ප්රතිචාර ලබාදෙන්න** — raw `err.stack` / `err.message` කිසිවිටෙක HTTP / SSE / executor / MCP ප්රතිචාර bodies තුළ නොතබන්න. [`docs/security/ERROR_SANITIZATION.md`](docs/security/ERROR_SANITIZATION.md) බලන්න. 10. **`env` option එක හරහා `exec()` / `spawn()` runtime අගයන් ලබාදෙන්න** — බාහිර paths හෝ විශ්වාස නොකළ අගයන් shell වෙත යවන scripts තුළට කිසිවිටෙක string-interpolate නොකරන්න. යොමුව: `src/mitm/cert/install.ts::updateNssDatabases`. 11. **පෙරනිමියෙන් ආරක්ෂිත පුස්තකාලවලට ප්රමුඛතාව දෙන්න** — [tldrsec/awesome-secure-defaults](https://github.com/tldrsec/awesome-secure-defaults) බලන්න (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink). ඔබේම විසඳුමක් සෑදීමට පෙර ඒවා භාවිත කරන්න. ## සැපයුම් දාම ස්කෑනර් සොයාගැනීම් (Socket.dev / Snyk / සමාන මෙවලම්) > **විෂය පථ සටහන:** repository root හි ඇති `socket.yml` මඟින් හැඩගස්වන්නේ ප්රකාශිත npm artifact එක පිළිබඳ Socket.dev හි registry-side post-publish scan සඳහා වන `projectIgnorePaths` පමණි — එය බලාත්මක කළ CI/PR merge gate එකක් නොවේ. `.github/workflows` තුළ ඇති කිසිදු workflow එකක්, `package.json` script එකක් හෝ `Makefile` target එකක් Socket.dev ක්රියාත්මක නොකරයි. ප්රකාශිත `omniroute` npm artifact එක Next.js `output: "standalone"` build එක bundle කරයි; එයින් අදහස් වන්නේ ලේඛනගත කර ඇති වරප්රසාදිත විශේෂාංග (MITM, Zed import, Cloud Sync, embedded service supervisor) ඇතුළුව සෑම route handler එකක්ම `.next/server/*.js` minified chunks තුළට ඇතුළත් වන බවයි. Heuristic සැපයුම් දාම ස්කෑනර් එම chunks malware signatures සමඟ නිතර pattern-match කරයි. අප භාවිත කරන ස්කෑනර් වින්යාසය repo root හි ඇති [`socket.yml`](socket.yml) තුළ පවතී (Socket.dev GitHub App format v2 — බලන්න ). එය පැහැදිලිවම බෙදාහැරීමට ඇතුළත් නොවන directories (`tests/`, `_tasks/`, `_references/`, `_ideia/`, `_mono_repo/`, `docs/`, ආදිය) බැහැර කරයි, එවිට ස්කෑනර් වාර්තා කරන්නේ සැබවින්ම ප්රකාශිත පරිශීලකයන් වෙත ළඟා වන code paths පමණි — scan එක ක්රියාත්මක වන්නේ මෙම ගොනුව කියවන Socket GitHub App එක මඟින් මිස මෙම repository එකේ workflow එකක් මඟින් නොවේ. එක් එක් සොයාගැනීම් ප්රවර්ගය සඳහා අපි සොයාගැනීමකට වෙන් වූ maintainer attestation එකක් පවත්වාගෙන යන්නෙමු: - **[`docs/security/SOCKET_DEV_FINDINGS.md`](docs/security/SOCKET_DEV_FINDINGS.md)** — සොයාගැනීමකට වෙන් වූ සිතියම: source file ↔ flagged chunk ↔ හැසිරීම ↔ v3.8.6 හි යෙදූ අවම කිරීම. - flag කරන ලද එක් එක් function ස්ථානයේ ඇති source තුළම පිහිටි `SECURITY-AUDITOR-NOTE:` blocks, එම ලේඛනයම නැවත යොමු කරයි. තම pipeline එකට alert එක ලිහිල් කළ නොහැකි පරිශීලකයන් සඳහා: `OMNIROUTE_BUILD_PROFILE=minimal npm run build` භාවිතයෙන් build කරන්න. මෙය සංවේදී modules හතර runtime හි HTTP 503 `feature-disabled` ලබාදෙන stubs සමඟ ප්රතිස්ථාපනය කරයි; එබැවින් වරප්රසාදිත code paths bundle එකෙන් භෞතිකවම ඉවත් වේ. ප්රකාශන ක්රමවේදය සඳහා [`docs/security/SOCKET_DEV_FINDINGS.md`](docs/security/SOCKET_DEV_FINDINGS.md) බලන්න. ## යොමු - [`docs/architecture/AUTHZ_GUIDE.md`](docs/architecture/AUTHZ_GUIDE.md) — අවසර දීමේ pipeline එක - [`docs/security/GUARDRAILS.md`](docs/security/GUARDRAILS.md) — ආරක්ෂක සීමා රාමුව - [`docs/security/COMPLIANCE.md`](docs/security/COMPLIANCE.md) — විගණන ලොගය සහ රඳවා තබාගැනීම - [`docs/security/PUBLIC_CREDS.md`](docs/security/PUBLIC_CREDS.md) — පොදු upstream අක්තපත්ර සඳහා **අනිවාර්ය** රටාව - [`docs/security/ERROR_SANITIZATION.md`](docs/security/ERROR_SANITIZATION.md) — දෝෂ ප්රතිචාර සඳහා **අනිවාර්ය** රටාව - [`docs/security/SOCKET_DEV_FINDINGS.md`](docs/security/SOCKET_DEV_FINDINGS.md) — සැපයුම් දාම ස්කෑනර් සොයාගැනීම් සඳහා නඩත්තුකරු සහතිකය - [`docs/architecture/RESILIENCE_GUIDE.md`](docs/architecture/RESILIENCE_GUIDE.md) — circuit breaker + cooldown + lockout - [`docs/security/STEALTH_GUIDE.md`](docs/security/STEALTH_GUIDE.md) — TLS ඇඟිලි සලකුණුකරණය (නීතිමය/සදාචාරාත්මක නිවේදනය) - [`CLAUDE.md`](CLAUDE.md) — AI agents සඳහා දැඩි නීති - [tldrsec/awesome-secure-defaults](https://github.com/tldrsec/awesome-secure-defaults) — පෙරනිමියෙන් ආරක්ෂිත ලෙස තෝරා සකස් කළ libraries