22 poin oleh xguru 2025-07-21 | 2 komentar | Bagikan ke WhatsApp
  • Alat manajemen variabel lingkungan generasi berikutnya yang mengatasi keterbatasan pendekatan .env/.env.example yang ada, sekaligus menyelesaikan kolaborasi/AI/keamanan/stabilitas tipe
    • Mengelola skema variabel lingkungan di satu tempat dengan .env.schema, sehingga tidak perlu khawatir ketidaksesuaian antara nilai nyata dan contoh seperti pada .env.example
  • Melalui anotasi dekorator @env-spec, berbagai informasi seperti skema, tipe, validasi, contoh, sensitivitas, dan pengelolaan secret eksternal dapat ditambahkan secara deklaratif ke file .env
    • @required, @type=string, @sensitive, @example dan lain-lain
  • Validasi yang kuat: kesalahan konfigurasi/input yang belum diisi langsung diberi panduan dengan pesan yang jelas (dicegah lebih awal sebelum runtime)
  • Dengan pembuatan tipe otomatis berbasis skema, akses variabel lingkungan di dalam kode menjadi aman secara tipe dan mendukung IntelliSense IDE
  • Keamanan: masking otomatis untuk informasi sensitif (log/konsol), deteksi kebocoran di klien atau respons yang sudah dibundel
  • Multi-environment dan override: mendukung konfigurasi lingkungan yang kompleks seperti nilai default, file per lingkungan, nilai personal yang diabaikan git, kombinasi process env, dan lainnya
  • Integrasi secret eksternal: pemuatan secret dinamis berbasis perintah seperti 1Password, exec, dengan dukungan plugin, enkripsi lokal, dan team vault yang akan segera hadir
  • Agnostik bahasa/runtime: tidak hanya JS/TS, tetapi juga bisa menyuntikkan validated env ke semua bahasa dan proses seperti varlock run -- python my.py
  • Dapat sepenuhnya menggantikan dotenv: cukup ganti import dotenv dengan varlock untuk langsung memakai validasi, pembuatan tipe otomatis, keamanan yang diperkuat, multi-environment/integrasi secret, dan berbagai fitur lainnya

2 komentar

 
onixboox 2025-07-23

Kalau begitu, apakah .env.schema harus dimasukkan ke .gitignore?

 
onixboox 2025-07-23

Ah.. jadi informasinya disimpan di .env, lalu dibaca oleh .env.schema, ya.