Bun Lockfiles மற்றும் உங்கள் சப்ளை செயின் பாதுகாப்பு (Supply Chain Security)
பைனரி லாக்ஃபைல்கள் (Binary lockfiles) ஒரு பாதுகாப்பு வரி போன்றது—அதன் வட்டியுடன் நீங்கள் பிறகு செலுத்த வேண்டியிருக்கும்.
Bun முன்பு தனது சார்புகளை (dependencies) bun.lockb எனப்படும் ஒரு பைனரி கோப்பில் சேமித்து வைத்திருந்தது. அது வேகமாகவும் சிறியதாகவும் இருந்தது, ஆனால் உங்களால் அதை வாசிக்க முடியாது. ஒரு pull request-இல் அதன் மாற்றங்களை (diff) உங்களால் பார்க்க முடியாது, மேலும் என்ன மாறியுள்ளது என்பதையும் அறிய முடியாது.
ஒரு சார்பின் (dependency) மாற்றத்தை உங்களால் ஆய்வு செய்ய முடியாதபோது, உங்களிடம் எந்தக் கொள்கையும் இல்லை—வெறும் யூகங்கள் மட்டுமே உள்ளன.
Bun v1.2 அதன் இயல்பு அமைப்பை (default) உரை அடிப்படையிலான (text-based) bun.lock ஆக மாற்றுகிறது. இதுவே ஒரு மிகப்பெரிய பாதுகாப்பு வெற்றியாகும்.
உரை அடிப்படையிலான லாக்ஃபைல்கள் ஏன் முக்கியம்
- பொருளமுள்ள மாற்றங்கள் (Meaningful diffs) – எந்தெந்த பேக்கேஜ்கள் (packages) நகர்ந்தன அல்லது மாறின என்பதை ஆய்வாளர்கள் துல்லியமாகப் பார்க்க முடியும்.
- எளிதான கொள்கை சரிபார்ப்புகள் (Easy policy checks) – தடைசெய்யப்பட்ட முறைகள் (patterns) அல்லது நம்பகத்தன்மையற்ற பதிவேடுகளை (registries) CI ஸ்கேன் செய்ய முடியும்.
- வேகமான தடயவியல் (Faster forensics) – ஒரு தீங்கிழைக்கும் பேக்கேஜை (malicious package) அறிமுகப்படுத்திய துல்லியமான commit-ஐ
git logகாட்டும்.
ஒரு லாக்ஃபைல் அதன் நம்பகத்தன்மையையும் (integrity) மீண்டும் உருவாக்கக்கூடிய தன்மையையும் (reproducibility) உறுதி செய்கிறது, ஆனால் அது அனைத்துப் பிரச்சினைகளுக்கும் தீர்வல்ல. முறையாக வெளியிடப்பட்ட ஒரு தீங்கிழைக்கும் பதிப்பையோ அல்லது ஒரு பராமரிப்பாளரின் (maintainer) பாதுகாப்பற்ற நிலையையோ அது தடுக்காது.
உரை அடிப்படையிலான லாக்ஃபைல் வழங்கும் கூடுதல் அம்சம் வெளிப்படைத்தன்மை (visibility) ஆகும். வெளிப்படைத்தன்மையே உங்கள் முதல் பாதுகாப்பு அரண்.
உங்கள் Bun பணிப்பாய்வை (workflow) எவ்வாறு பாதுகாப்பது
- CI-இல்
bun install --frozen-lockfileஎன்பதை இயக்கவும். லாக்ஃபைலை புதுப்பிக்க வேண்டியிருந்தால், பில்ட் (build) தோல்வியடையும். - CI-இல்
bun install --lockfile-onlyஎன்பதை இயக்கவும். கனமான இன்ஸ்டால் ஸ்கிரிப்ட்களை (install scripts) இயக்காமலேயே நீங்கள் தீர்மானங்களை (resolution) சரிபார்க்க முடியும். - ஏதேனும் bun.lockb கோப்புகளை உடனடியாக bun.lock ஆக மாற்றவும்.
- லாக்ஃபைல் மாற்றங்களுக்கு மனித ஆய்வை (human review) கட்டாயமாக்குங்கள். ஒவ்வொரு சார்பு புதுப்பித்தலையும் (dependency update) சரியான நபர்கள் பார்ப்பதற்கு,
CODEOWNERS-இல் பொருத்தமான உரிமையாளர்களைச் சேர்க்கவும்.
கருவியை கண்மூடித்தனமாக நம்புவதை நிறுத்துங்கள். அதற்குப் பதிலாக ஒவ்வொரு மாற்றத்தையும் சரிபார்க்கவும்.
