npm නවතම v12 සංස්කරණය (2023 ජූලි 8) නිකුත් කිරීමෙන් පසු, පූර්ව‑install, install, postinstall වැනි dependency lifecycle ස්ක්රිප්ට්වලට ස්වයංක්රීයව ක්රියා නොකරයි; ඒවා package.json හි allowScripts කොටසින් අනිවාර්යයෙන් අනුමත කළ යුතුය.
මෙම වෙනස්කම සපයන ලද supply‑chain ආරක්ෂාවක් ලෙස සැලකේ. නමුත් ඒ සමඟම සංවර්ධක කණ්ඩායම්ට “කොහොමද මේ පැකේජයන් අනුමත කරනවා?” යන ප්රශ්නයක් ඉදිරිපත් වේ. npm පණිවිඩය “sharp wants to run an install script” කියා පෙන්වයි, නමුත් එම ස්ක්රිප්ට් එකේ අන්තර්ගතය කුමක්දැයි පෙන්වන්නේ නැත.
ඒ නිසා “npm‑script‑lens” නමැති නව OSS මෙවලමක් නිර්මාණය කර ඇත. මෙම මෙවලම tarball ගොනුව විග්රහ කර, ස්ක්රිප්ට් මාර්ගයන්, exec, fs, net වැනි කාර්යයන් සොයා, රිස්ක් මට්ටම පෙන්වයි. ලේඛකයා තම පරික්ෂණයක් තුළ sharp, prisma, chalk, core‑js යන පැකේජ 4කින් සමන්විත උදාහරණයක් භාවිතා කර, මුළු 39 lock‑කරන පැකේජ විශ්ලේෂණය කළේය.
උදාහරණයේ ප්රතිඵල මෙසේය:
- @prisma/[email protected] – HIGH (postinstall තුළ engine binary බාගත කිරීම, exec)
- [email protected] – HIGH (node‑gyp rebuild, pkg‑config, native build)
- core‑[email protected] – LOW (fs.writeFileSync, env)
- [email protected] – LOW (preinstall env)
- අන් 35 පැකේජ – රිස්ක් නැත
ඉන්පසු package.json හි allowScripts කොටසට පහත ආකාරයෙන් ලියයි:
{ "allowScripts": { "@prisma/[email protected]": false, "[email protected]": true, "[email protected]": true, "[email protected]": false } }
ඉදිරි වර්ෂණයන් ගැන සැලකිල්ලක් ගැනීම අත්යවශ්යයි. උදාහරණයක් ලෙස sharp 0.32.6 → 0.33.5 යන වර්ධනයේදී node‑gyp rebuild එකතු වී තිබේ; ඒ වගේම අනාගත වර්ධනයේදී (0.34.0) අලුත් විධාන එකතු විය හැකිය. npm‑script‑lens හි --diff ප්රකාරය PR එකකට වඩාත් ප්රයෝජනවත්, base lock‑file සමඟ වෙනස්කම් සසඳා, නව රිස්ක් සලකුණු කරයි.
ශ්රී ලංකාවට ඇති වැදගත්කම
සිංහල සංවර්ධක කණ්ඩායම්, විශ්වවිද්යාල සිසුන්, තාක්ෂණ ආයතන සඳහා npm v12 නවීකරණය විශාල වැදගත්කමක් ගෙන එයි. පළමුව, ස්ක්රිප්ට් අනුමත කිරීමේ පැහැදිලි ලැයිස්තුවක් ඇති වීමෙන් supply‑chain පරික්ෂණය සරළ වේ. දෙවැනි, npm‑script‑lens වැනි මෙවලම් භාවිතයෙන් ස්ථානයේම රිස්ක් විශ්ලේෂණය කර, අධික අවදානම් පැකේජයන් පමණක් අනුමත කළ හැකිය. තුන්වැනි, ශ්රී ලංකාවේ බොහෝ ස්ටාර්ට්‑අප් සහ IT සේවා සපයන්නන් npm භාරගත පද්ධතිවලින් වැඩ කරන නිසා, මෙම ආරක්ෂණය දත්ත රහස්යතාවය, සේවා නිරන්තරතාවය, හා පාරිභෝගික විශ්වාසය රැක ගැනීමට උපකාරී වේ.
ඉදිරියට, සංවර්ධකයින් npm‑script‑lens සමඟ CI/CD පයිප්ලයින් එකතු කර, PR එකක් අරඹන විටම ස්ක්රිප්ට් රිස්ක් පරීක්ෂා කිරීමේ ස්වයංක්රීය ක්රියාවලියක් සකස් කළ හැකිය. මෙය ලොකු ව්යාපෘති වලදී කාලය ඉතිරි කර, අහඹු supply‑chain ආක්රමණයන් වැළැක්වීමට මූලික පියවරක් වේ.
npm v12 හි අලුත් ආරක්ෂණය, නිවැරදිව භාවිතා කළහොත්, ශ්රී ලංකාවේ තාක්ෂණික පරිසරය වඩාත් විශ්වාසදායක හා ආරක්ෂිත කරයි.