git-pkgs proxy: پراکسی کشینگ برای رجیستریهای پکیج
خلاصهٔ کاملتر
git-pkgs proxy یه پراکسی کشینگ برای رجیستریهای پکیجه که با ذخیرهسازی محلی آرتیفکتها، دانلودها رو سریعتر میکنه، مصرف پهنایباند رو کم میکنه و قابلیت اطمینان بیلدها رو بالا میبره.
مهمترین ویژگی این ابزار Version Cooldown هست — یه مکانیزم قرنطینه برای نسخههای تازهمنتشرشده. اکثر حملات زنجیرهی تامین (supply chain attacks) روی سرعت حساب میکنن: یه نسخهی مخرب منتشر میشه و قبل از اینکه کسی متوجه بشه، پایپلاینهای CI/CD اون رو مصرف کردن. کولداون این پنجره رو میبنده؛ پراکسی نسخههای جدید رو تا پایان بازهی تعریفشده از متادیتا پنهان میکنه.
cooldown:
default: "3d" # نسخههای منتشرشده در ۳ روز اخیر مخفی میشن
ecosystems:
npm: "7d" # برای npm بازهی طولانیتر
cargo: "0" # برای cargo غیرفعال
packages:
"pkg:npm/lodash": "0" # پکیجهای مورد اعتماد رو استثنا کناین تنظیم به صورت سلسلهمراتبی کار میکنه: ابتدا override پکیج، بعد override اکوسیستم، و در آخر مقدار پیشفرض. میشه یه پیشفرض محافظهکارانه گذاشت و برای پکیجهای خاصی که نیاز به آپدیت سریعتری دارن، استثنا تعریف کرد.
این پراکسی از بیش از ۲۰ اکوسیستم پشتیبانی میکنه: npm، Cargo، RubyGems، PyPI، Maven، NuGet، Composer، Docker/OCI، Go modules، Conda، Debian/APT، RPM و چند تای دیگه. ویژگی کولداون برای اکثر اونها فعاله، به شرطی که رجیستری تایماستمپ انتشار رو در متادیتا اکسپوز کنه.
از نظر ذخیرهسازی، پیشفرض روی فایلسیستم محلی و دیتابیس SQLite هست که برای استقرار تکنودی کافیه. برای تنظیمات پیچیدهتر میشه از PostgreSQL به عنوان دیتابیس و از S3 یا سرویسهای سازگار با اون مثل MinIO و R2 برای ذخیره آرتیفکتها استفاده کرد.
علاوه بر پروکسی کردن ترافیک پکیج، یه API غنیسازی هم داره که میشه باهاش متادیتای پکیج، آسیبپذیریها (از جمله CVSSScore و نسخهی پچشده)، و وضعیت outdated بودن پکیجها رو بررسی کرد. دستور proxy mirror هم اجازه میده کش رو از روی PURL، فایل SBOM (فرمت CycloneDX یا SPDX)، یا کل یه رجیستری از پیش پر کرد.
نکات کلیدی:
- کولداون نسخههای جدید رو قرنطینه میکنه تا از حملات supply chain جلوگیری بشه
- پشتیبانی از بیش از ۲۰ رجیستری شامل npm، Cargo، PyPI، Maven، Docker و غیره
- ذخیرهسازی روی فایلسیستم، S3 یا MinIO؛ دیتابیس SQLite یا PostgreSQL
- دستور proxy mirror برای پیشگرم کردن کش از PURL یا فایل SBOM
- API داخلی برای بررسی آسیبپذیریها، متادیتا، و پکیجهای outdated
- قابل تنظیم از طریق فلگ CLI، متغیرهای محیطی، یا فایل YAML/JSON




