Bun Lockfiles اور آپ کی سپلائی چین سیکیورٹی
بائنری لاک فائلز ایک سیکیورٹی ٹیکس کی طرح ہیں—جس کی ادائیگی آپ کو بعد میں سود کے ساتھ کرنی پڑتی ہے۔
Bun پہلے اپنی ڈیپینڈنسیز (dependencies) کو bun.lockb نامی ایک بائنری فائل میں محفوظ کرتا تھا۔ یہ تیز اور چھوٹی تھی، لیکن آپ اسے پڑھ نہیں سکتے تھے۔ آپ پل ریکوسٹ (pull request) میں اس کا فرق (diff) نہیں دیکھ سکتے تھے، اور نہ ہی یہ دیکھ سکتے تھے کہ کیا تبدیل ہوا ہے۔
جب آپ کسی ڈیپینڈنسی کی تبدیلی کا جائزہ نہیں لے سکتے، تو آپ کے پاس کوئی پالیسی نہیں ہوتی—صرف ایک اندازہ ہوتا ہے۔
Bun v1.2 ڈیفالٹ کو تبدیل کر کے ٹیکسٹ پر مبنی bun.lock کر دیتا ہے۔ یہ اکیلا ہی سیکیورٹی کے لحاظ سے ایک بڑی جیت ہے۔
ٹیکسٹ پر مبنی لاک فائلز کیوں اہم ہیں
- معنی خیز فرق (Meaningful diffs) – ریویورز (reviewers) بالکل دیکھ سکتے ہیں کہ کون سے پیکیجز منتقل ہوئے یا تبدیل ہوئے۔
- آسان پالیسی چیک – CI ممنوعہ پیٹرنز یا ناقابل اعتماد رجسٹریز (registries) کے لیے اسکین کر سکتا ہے۔
- تیز رفتار فارنزک (Forensics) –
git logاس مخصوص کمٹ (commit) کو ظاہر کرتا ہے جس نے کوئی نقصان دہ (malicious) پیکیج متعارف کروایا۔
ایک لاک فائل انٹیگریٹی (integrity) اور ری پروڈیوسیبلٹی (reproducibility) کی ضمانت دیتی ہے، لیکن یہ کوئی جادوئی حل (silver bullet) نہیں ہے۔ یہ کسی ایسے نقصان دہ ورژن کو نہیں روک سکے گی جو قانونی طور پر شائع کیا گیا ہو، اور نہ ہی کسی ایسے مینٹینر (maintainer) کو جسے ہیک کر لیا گیا ہو۔
ٹیکسٹ لاک فائل جو اضافہ کرتی ہے وہ ہے ویزیبلٹی (visibility)۔ ویزیبلٹی آپ کے دفاع کی پہلی لائن ہے۔
اپنے Bun ورک فلو (workflow) کو کیسے محفوظ بنائیں
- CI میں
bun install --frozen-lockfileچلائیں۔ اگر لاک فائل کو اپ ڈیٹ کرنے کی ضرورت ہوئی تو بلڈ (build) فیل ہو جائے گا۔ - CI میں
bun install --lockfile-onlyچلائیں۔ آپ بھاری انسٹال اسکرپٹس (install scripts) چلائے بغیر ریزولوشن (resolution) کی تصدیق کر سکتے ہیں۔ - کسی بھی bun.lockb فائلوں کو فوراً bun.lock میں منتقل کریں۔
- لاک فائل کی تبدیلیوں کے لیے انسانی جائزے (human review) کو لازمی بنائیں۔
CODEOWNERSمیں مناسب مالکان (owners) شامل کریں تاکہ صحیح لوگ ہر ڈیپینڈنسی اپ ڈیٹ دیکھ سکیں۔
ٹول پر اندھا دھند بھروسہ کرنا چھوڑ دیں۔ اس کے بجائے ہر تبدیلی کی تصدیق کریں۔
