Bun Lockfiles અને તમારી સપ્લાય ચેઇન સુરક્ષા
બાઈનરી લોકફાઇલ્સ એ સુરક્ષા ટેક્સ છે—તમે તેનું વળતર પછીથી, વ્યાજ સાથે ચૂકવો છો.
Bun પહેલાં dependencies ને bun.lockb નામની બાઈનરી ફાઇલમાં સંગ્રહિત કરતું હતું. તે ઝડપી અને નાની હતી, પરંતુ તમે તેને વાંચી શકતા નહોતા. તમે pull request માં તેનો તફાવત (diff) જોઈ શકતા નહોતા, અને શું બદલાયું છે તે પણ જોઈ શકતા નહોતા.
જ્યારે તમે dependency ના ફેરફારની સમીક્ષા કરી શકતા નથી, ત્યારે તમારી પાસે કોઈ નીતિ હોતી નથી—માત્ર એક અંદાજ હોય છે.
Bun v1.2 ડિફોલ્ટને ટેક્સ્ટ-આધારિત bun.lock માં બદલે છે. આ એકલું જ સુરક્ષાની દ્રષ્ટિએ મોટી જીત છે.
ટેક્સ્ટ-આધારિત લોકફાઇલ્સ શા માટે મહત્વની છે
- અર્થપૂર્ણ તફાવત (Meaningful diffs) – રિવ્યુઅર્સ જોઈ શકે છે કે કયા પેકેજો બદલાયા અથવા ખસકી ગયા છે.
- સરળ પોલિસી ચેક્સ – CI પ્રતિબંધિત પેટર્ન અથવા અવિશ્વસનીય રજિસ્ટ્રી માટે સ્કેન કરી શકે છે.
- ઝડપી ફોરેન્સિક્સ –
git logએ ચોક્કસ commit દર્શાવે છે જેણે નુકસાનકારક પેકેજ દાખલ કર્યું હતું.
લોકફાઇલ અખંડિતતા (integrity) અને પુનરાવર્તિતતા (reproducibility) ની ખાતરી આપે છે, પરંતુ તે કોઈ જાદુઈ લાકડી (silver bullet) નથી. તે કાયદેસર રીતે પ્રકાશિત કરાયેલ નુકસાનકારક વર્ઝનને અથવા કોઈ જોખમમાં મુકાયેલા મેન્ટેનરને રોકી શકશે નહીં.
ટેક્સ્ટ લોકફાઇલ જે ઉમેરે છે તે છે વિઝિબિલિટી (visibility). વિઝિબિલિટી એ તમારી સુરક્ષાની પ્રથમ હરોળ છે.
તમારા Bun વર્કફ્લોને કેવી રીતે સુરક્ષિત કરવો
- CI માં
bun install --frozen-lockfileચલાવો. જો લોકફાઇલમાં અપડેટની જરૂર હોય તો બિલ્ડ નિષ્ફળ જશે. - CI માં
bun install --lockfile-onlyચલાવો. તમે ભારે ઇન્સ્ટોલ સ્ક્રિપ્ટ્સ ચલાવ્યા વિના રિઝોલ્યુશનને વેલિડેટ કરી શકો છો. - કોઈપણ bun.lockb ફાઇલોને તરત જ bun.lock માં માઇગ્રેટ કરો.
- લોકફાઇલ ફેરફારો માટે માનવીય સમીક્ષા (human review) અનિવાર્ય કરો.
CODEOWNERSમાં યોગ્ય માલિકો ઉમેરો જેથી યોગ્ય વ્યક્તિ દરેક dependency અપડેટ જોઈ શકે.
સાધનો પર આંધળો વિશ્વાસ કરવાનું બંધ કરો. તેના બદલે દરેક ફેરફારની ચકાસણી કરો.
