Konfigurasi API
Konfigurasi API disediakan melalui variabel lingkungan, biasanya dalam file
.env lokal yang tidak dibagikan. Tabel ini merangkum nama dan kegunaan
konfigurasi yang digunakan backend. Nilai aktual harus disediakan oleh
administrator lingkungan Anda.
| Variabel | Kegunaan | Catatan |
|---|---|---|
PORT |
Port HTTP API. | Fallback aplikasi adalah 3000. |
CORS_ORIGINS |
Daftar origin frontend yang diizinkan, dipisahkan koma. | Jika kosong, backend menggunakan daftar origin lokal bawaan. |
MONGO_URI_YOSEHAT |
URI koneksi database MongoDB YoSehat. | Konfigurasikan kredensial dan jaringan sesuai lingkungan. |
JWT_SECRET |
Rahasia untuk penandatanganan/verifikasi JWT. | Gunakan nilai privat dan kuat; jangan gunakan contoh atau nilai placeholder. |
JWT_EXPIRATION |
Masa berlaku JWT. | Auth menggunakan fallback 1h bila tidak dikonfigurasi. |
REDIS_HOST |
Host Redis. | Fallback pada layanan cache adalah localhost. |
REDIS_PORT |
Port Redis. | Fallback pada layanan cache adalah 6379. |
REDIS_PASSWORD |
Kata sandi Redis bila digunakan. | Jangan simpan kredensial produksi dalam kontrol versi. |
REDIS_DB |
Nomor database Redis. | Fallback pada layanan cache adalah 0. |
REDIS_KEY_PREFIX_CACHE |
Prefix key cache. | Sesuaikan agar tidak bertabrakan dengan key aplikasi lain. |
SMTP_HOST, SMTP_PORT, SMTP_SECURE |
Koneksi server email. | Dibutuhkan untuk alur email sesuai konfigurasi deployment. |
SMTP_USER, SMTP_PASS |
Kredensial SMTP. | Simpan sebagai secret lingkungan. |
SMTP_FROM, SMTP_FROM_NAME |
Identitas pengirim email. | Gunakan alamat pengirim yang disetujui. |
MIDTRANS_SERVER_KEY |
Kredensial integrasi pembayaran Midtrans. | Rahasia; jangan pernah dikirim ke klien atau didokumentasikan nilainya. |
MIDTRANS_IS_PRODUCTION |
Memilih mode integrasi pembayaran. | Pastikan mode sesuai lingkungan. |
ORDER_REFUND_ENCRYPTION_KEY |
Kunci enkripsi data refund pesanan. | Lindungi sebagai secret dan ikuti ketentuan panjang/format implementasi. |
CORS dan jalur
Section titled “CORS dan jalur”Backend menggunakan CORS_ORIGINS untuk menentukan origin yang diizinkan.
Pastikan origin frontend yang diperlukan tercantum tanpa menambahkan wildcard
secara sembarang.
Meskipun contoh konfigurasi dapat memuat variabel ROUTE_PREFIX, bootstrap
NestJS saat ini menetapkan global prefix kosong. Karena itu, jangan menambahkan
prefix tersebut pada request tanpa perubahan implementasi yang sesuai.
Praktik secret
Section titled “Praktik secret”- Jangan menaruh
.envatau secret dalam repositori, dokumentasi publik, issue, maupun log. - Gunakan secret store atau pengelola konfigurasi lingkungan deployment.
- Rotasi kredensial jika terlanjur terungkap.
- Isi contoh lokal dengan nilai milik lingkungan Anda; jangan menyalin nilai rahasia dari mesin atau deployment lain.
