Bun Lockfiles-ഉം നിങ്ങളുടെ സപ്ലൈ ചെയിൻ സുരക്ഷയും
ബൈനറി ലോക്ക്ഫയലുകൾ ഒരു സുരക്ഷാ നികുതിയാണ്—നിങ്ങൾ അത് പിന്നീട് പലിശ സഹിതം നൽകേണ്ടി വരും.
Bun ഇതിനുമുമ്പ് ഡിപ്പൻഡൻസികൾ (dependencies) bun.lockb എന്ന ഒരു ബൈനറി ഫയലിലാണ് സൂക്ഷിച്ചിരുന്നത്. അത് വേഗതയുള്ളതും ചെറുതുമായിരുന്നു, എന്നാൽ നിങ്ങൾക്ക് അത് വായിക്കാൻ കഴിയില്ലായിരുന്നു. ഒരു pull request-ൽ നിങ്ങൾക്ക് അതിന്റെ വ്യത്യാസങ്ങൾ (diff) കാണാനോ എന്താണ് മാറിയതെന്ന് മനസ്സിലാക്കാനോ കഴിയില്ലായിരുന്നു.
ഒരു ഡിപ്പൻഡൻസി മാറ്റം നിങ്ങൾക്ക് പരിശോധിക്കാൻ (review) കഴിയുന്നില്ലെങ്കിൽ, അവിടെ നിങ്ങൾക്ക് ഒരു പോളിസിയും ഇല്ല—വെറുമൊരു ഊഹം മാത്രമാണ് ഉള്ളത്.
Bun v1.2 ഡിഫോൾട്ട് രീതി ഒരു ടെക്സ്റ്റ് അധിഷ്ഠിത bun.lock ഫയലിലേക്ക് മാറ്റുന്നു. അത് മാത്രം തന്നെ സുരക്ഷയിൽ വലിയൊരു നേട്ടമാണ്.
എന്തുകൊണ്ടാണ് ടെക്സ്റ്റ് അധിഷ്ഠിത ലോക്ക്ഫയലുകൾ പ്രധാനമാകുന്നത്
- അർത്ഥവത്തായ വ്യത്യാസങ്ങൾ (Meaningful diffs) – ഏത് പാക്കേജുകളാണ് മാറിയതെന്നോ നീങ്ങിയതെന്നോ റിവ്യൂവർമാർക്ക് കൃത്യമായി കാണാൻ സാധിക്കുന്നു.
- എളുപ്പത്തിലുള്ള പോളിസി പരിശോധനകൾ – നിരോധിത പാറ്റേണുകളോ വിശ്വസനീയമല്ലാത്ത രജിസ്ട്രികളോ ഉണ്ടോ എന്ന് CI-ക്ക് സ്കാൻ ചെയ്യാൻ കഴിയും.
- വേഗത്തിലുള്ള ഫോറൻസിക് പരിശോധന – ഒരു മാൽവേരിയസ് പാക്കേജ് ഏത് കമിറ്റിലൂടെയാണ് വന്നതെന്ന്
git logകൃത്യമായി കാണിച്ചുതരുന്നു.
ഒരു ലോക്ക്ഫയൽ ഡാറ്റയുടെ വിശ്വാസ്യതയും (integrity) പുനരാവിഷ്ക്കാരക്ഷമതയും (reproducibility) ഉറപ്പാക്കുന്നുണ്ടെങ്കിലും, അത് എല്ലാ പ്രശ്നങ്ങൾക്കും പരിഹാരമല്ല. നിയമപരമായി പ്രസിദ്ധീകരിച്ച ഒരു മാൽവേരിയസ് വേർഷനെയോ അല്ലെങ്കിൽ ഒരു മെയിന്റൈനറുടെ അക്കൗണ്ട് ഹാക്ക് ചെയ്യപ്പെട്ട അവസ്ഥയെയോ അത് തടയില്ല.
ടെക്സ്റ്റ് ലോക്ക്ഫയൽ നൽകുന്ന പ്രധാന കാര്യം വ്യക്തതയാണ് (visibility). വ്യക്തതയാണ് നിങ്ങളുടെ സുരക്ഷയുടെ ആദ്യ പ്രതിരോധം.
നിങ്ങളുടെ Bun വർക്ക്ഫ്ലോ എങ്ങനെ സുരക്ഷിതമാക്കാം
- CI-യിൽ
bun install --frozen-lockfileഉപയോഗിക്കുക. ലോക്ക്ഫയൽ അപ്ഡേറ്റ് ചെയ്യേണ്ടതുണ്ടെങ്കിൽ ബിൽഡ് പരാജയപ്പെടും. - CI-യിൽ
bun install --lockfile-onlyഉപയോഗിക്കുക. കനത്ത ഇൻസ്റ്റാൾ സ്ക്രിപ്റ്റുകൾ പ്രവർത്തിപ്പിക്കാതെ തന്നെ നിങ്ങൾക്ക് റെസല്യൂഷൻ (resolution) പരിശോധിക്കാം. - നിലവിലുള്ള ഏതെങ്കിലും bun.lockb ഫയലുകൾ ഉടൻ തന്നെ bun.lock ഫയലുകളിലേക്ക് മാറ്റുക.
- ലോക്ക്ഫയലിലെ മാറ്റങ്ങൾക്ക് മനുഷ്യർ നേരിട്ട് പരിശോധിക്കുന്നത് (human review) നിർബന്ധമാക്കുക. ഓരോ ഡിപ്പൻഡൻസി അപ്ഡേറ്റും ശരിയായ ആളുകൾ കാണുന്നുണ്ടെന്ന് ഉറപ്പാക്കാൻ
CODEOWNERS-ൽ അനുയോജ്യരായ ഉടമസ്ഥരെ (owners) ചേർക്കുക.
ടൂളുകളെ അന്ധമായി വിശ്വസിക്കുന്നത് നിർത്തുക. പകരം ഓരോ മാറ്റവും പരിശോധിക്കുക.
