Manifest: Penyelesaian Backend 1-Fail Mendapat Pujian dan Kebimbangan Keselamatan daripada Pembangun

BigGo Editorial Team
Manifest: Penyelesaian Backend 1-Fail Mendapat Pujian dan Kebimbangan Keselamatan daripada Pembangun

Manifest, penyelesaian mikro-backend 1-fail yang baharu, telah mencetuskan perbincangan penting dalam komuniti pembangun tentang pendekatannya untuk memudahkan pembangunan backend. Direka untuk prototaip pantas, perkhidmatan mikro, dan aplikasi berasaskan CRUD, Manifest bertujuan untuk menyediakan ciri-ciri backend penting dalam satu fail yang boleh diintegrasikan terus ke dalam kod sedia ada. Walau bagaimanapun, komuniti telah membangkitkan persoalan penting mengenai model keselamatan, pelaksanaan pangkalan data, dan batasan ciri-cirinya.

Kebimbangan Keselamatan Menonjolkan Cabaran Pelaksanaan

Pembangun yang mengkaji Manifest telah mengenal pasti beberapa isu keselamatan yang boleh menimbulkan risiko besar kepada pengguna. Salah satu aspek yang paling membimbangkan yang sering disebut adalah sistem kebenaran lalai, yang secara automatik memberikan akses awam kepada sebarang tindakan tanpa dasar yang ditetapkan. Kesilapan besar ini, seperti yang digambarkan oleh seorang pengulas, bermakna pembangun perlu sangat berhati-hati untuk menentukan kebenaran secara jelas bagi setiap entiti dan tindakan atau berisiko mendedahkan data sensitif dan operasi kepada pengguna yang tidak disahkan.

Isu keselamatan lain yang dikenal pasti pada awalnya adalah penggunaan SHA-3 untuk pengehasan kata laluan berbanding algoritma yang lebih sesuai yang direka khusus untuk penyimpanan kata laluan. Walaupun pasukan Manifest telah mengemas kini kepada bcrypt, kecuaian ini tidak dicerminkan dalam dokumentasi mereka sehingga ahli komuniti menunjukkannya, menimbulkan persoalan tentang pendekatan keselamatan-utama projek ini.

Ciri-ciri Utama Manifest:

  • Sistem pengesahan
  • Pengesahan data
  • Keupayaan penyimpanan
  • Pengubahan saiz imej
  • Panel admin
  • Titik akhir dinamik
  • API REST
  • SDK JavaScript
  • Webhooks

Batasan yang Dikenal Pasti oleh Komuniti:

  • Model kebenaran lalai (akses awam melainkan dinyatakan sebaliknya)
  • Kekurangan penguncian pangkalan data yang sesuai
  • Tiada alat migrasi (sedang dalam pembangunan)
  • Sebelum ini menggunakan SHA-3 untuk pengehasan kata laluan (kini dikemas kini kepada bcrypt)
  • Struktur direktori yang kompleks walaupun dipasarkan sebagai "1-fail"

Penyelesaian Serupa yang Disebut:

  • PocketBase
  • PostgREST
  • Prisma + PostgREST

Pelaksanaan Pangkalan Data Menimbulkan Persoalan Kebolehpercayaan

Analisis teknikal terhadap kod Manifest mendedahkan kebimbangan tentang pelaksanaan pangkalan data asasnya. Seorang pembangun menyatakan ketiadaan mekanisme penguncian yang betul, memberi amaran bahawa menjalankan beberapa contoh secara serentak boleh merosakkan data. Isu asas seni bina ini mencadangkan masalah kebolehpercayaan yang berpotensi untuk aplikasi dengan pengguna atau proses serentak.

Nampaknya ia tidak menggunakan penguncian, jadi menjalankan dua contoh akan merosakkan 'pangkalan data' anda... Mungkin lebih baik untuk kekal dengan sqlite!

Kekurangan alat migrasi juga ditonjolkan sebagai batasan penting, walaupun seorang pembangun Manifest menjawab bahawa penyegerakan pangkalan data kini mengendalikan perubahan skema dengan migrasi yang betul dirancang untuk keluaran masa depan.

Perbandingan dengan Penyelesaian Sedia Ada

Ramai pengulas membuat perbandingan antara Manifest dan alat serupa seperti PocketBase, PostgREST, dan rangka kerja tradisional. PocketBase muncul sebagai alternatif yang sering disebut yang mengikuti pendekatan backend yang dipermudahkan tetapi dengan pelaksanaan yang lebih matang. Beberapa pembangun berkongsi pengalaman positif menggunakan PocketBase untuk projek kecil, mencadangkan ia mungkin merupakan pilihan yang lebih dipercayai untuk kegunaan produksi pada masa ini.

Pasukan Manifest menekankan pembeza produk mereka sebagai berasaskan kod sepenuhnya, membolehkan pembangun kekal dalam IDE mereka dan memanfaatkan alat AI seperti GitHub Copilot atau Cursor untuk membina backend. Pendekatan kod-dahulu ini, menggunakan DSL berasaskan YAML, ditonjolkan sebagai mesra AI berbanding perkhidmatan backend berasaskan UI, walaupun sesetengah mempersoalkan keperluan penggunaan emoji dalam pengisytiharan entiti.

Struktur Projek dan Pengalaman Pembangun

Sesetengah pembangun menyatakan kebimbangan tentang organisasi projek, menyatakan bahawa walaupun dipasarkan sebagai mikro-backend 1-fail, repositori GitHub Manifest mengandungi banyak fail dan kebergantungan. Seorang pengulas berkongsi kaedah mereka untuk menilai kualiti projek dengan mengukur sejauh mana mereka perlu pergi ke dalam hierarki direktori sebelum menemui kod pelaksanaan sebenar, mencadangkan Manifest tidak menunjukkan prestasi yang baik mengikut metrik ini.

Pendekatan konfigurasi berasaskan YAML menerima maklum balas bercampur. Walaupun sesetengah menghargai kesederhanaannya, yang lain mempersoalkan pilihan reka bentuk seperti penggunaan emoji yang seolah-olah wajib dalam pengisytiharan entiti, yang tidak dijelaskan dalam dokumentasi. Pasukan Manifest mengakui mereka boleh meningkatkan dokumentasi mereka mengenai keputusan reka bentuk ini.

Walaupun terdapat kebimbangan ini, ramai pembangun menyatakan minat dalam konsep dan potensi kegunaannya untuk projek berskala kecil, prototaip, dan MVP. Pasukan Manifest telah secara aktif terlibat dengan maklum balas, mengakui isu, dan menunjukkan rancangan untuk penambahbaikan.

Seperti kebanyakan projek peringkat beta, Manifest menawarkan pendekatan yang menarik untuk memudahkan pembangunan backend tetapi memerlukan pertimbangan yang teliti terhadap batasan semasa sebelum digunakan dalam apa-apa selain projek eksperimen. Kesediaan pasukan untuk bertindak balas terhadap maklum balas komuniti menunjukkan potensi untuk pertumbuhan dan penambahbaikan semasa projek matang.

Rujukan: manifest