Moviento 0deps: Dependensi Lokal dan Keamanan
Pengembang perangkat lunak menginstal ratusan pustaka eksternal di sebagian besar proyek. Framework modern bergantung pada ribuan dependensi transitif. Ini berarti aplikasi Anda menjalankan kode yang ditulis oleh ratusan orang yang tidak dikenal.
Ekosistem ini mempercepat pengembangan. Namun, hal ini juga menciptakan risiko rantai pasokan (supply chain) yang masif.
Gerakan 0deps mengajukan pertanyaan sederhana: Bagaimana jika aplikasi Anda hanya menjalankan kode yang benar-benar Anda kendalikan?
Setiap dependensi menambah permukaan serangan baru. Sebuah dependensi dapat:
- Memperkenalkan celah keamanan.
- Menjadi target serangan rantai pasokan.
- Ditinggalkan oleh penciptanya.
- Mengubah API publiknya.
- Merusak kompatibilitas ke belakang.
Dalam model 0deps, Anda memindahkan semua dependensi yang diperlukan langsung ke dalam repositori proyek Anda. Anda berhenti mengunduh paket secara dinamis selama waktu build. Segala sesuatu yang dibutuhkan untuk menjalankan aplikasi tetap berada di dalam repositori sejak saat Anda melakukan kloning.
Pendekatan ini memberikan:
- Build yang dapat direproduksi (reproducible builds).
- Ketergantungan yang lebih sedikit pada registri paket eksternal.
- Audit keamanan terpusat.
- Hasil yang dapat diprediksi.
Tujuannya bukan untuk membuat kode menjadi statis. Implementasi dan algoritma harus berevolusi untuk memperbaiki bug dan tetap aman. Tujuannya adalah menjaga kontrak publik tetap stabil.
Setiap pustaka mengekspos antarmuka tertentu. Sebagai contoh:
authenticate()createSession()verifyPasskey()
Fungsi-fungsi ini membentuk sebuah kontrak. Kontrak tersebut tetap sama meskipun Anda menulis ulang kode dasarnya. Anda dapat menukar pustaka atau mengubah protokol tanpa merusak bagian aplikasi lainnya.
Ketika kerentanan muncul, Anda biasanya menghadapi dua masalah:
- Memperbaiki bug.
- Memeriksa apakah pembaruan tersebut merusak aplikasi Anda.
Dalam arsitektur 0deps, masalah kedua menghilang. Anda memperbarui implementasi di balik antarmuka tersebut. API publik tetap identik. Aplikasi Anda terus berfungsi tanpa perubahan kode.
Dengan mengisolasi kode eksternal di balik adaptor internal, Anda mengurangi risiko jangka panjang. Jika sebuah pustaka menghilang besok, Anda hanya perlu memperbarui adaptornya.
0deps tidak melawan open source. Ia mengubah cara Anda mengonsumsinya. Pustaka menjadi komponen terintegrasi, bukan sekadar tautan eksternal yang dinamis.
Ini menciptakan perangkat lunak yang dapat diprediksi, tangguh, dan mudah dipelihara. Implementasi berevolusi. Kontrak tetap ada.
