devops
Catatan teknis seputar web development, DevOps, dan integrasi AI.
111 artikel
- 20.43backend
Batas Upload 8 MiB: Satu Angka, Empat Lapisan
Satu batas upload bukan satu setting: FastAPI ternyata tidak menolak berkas besar. Gerbang aslinya ada di browser, nginx, dan Next.js.
TL;DR: Unggahan 8,5 MiB di KotaPortal gagal nyeleneh, tadinya dikira FastAPI yang nolak. Ternyata FastAPI nggak nolak otomatis, gerbangnya ada di empat tempat: browser, nginx (default 1 MiB), Server Actions Next.js (default 1 MB), dan kode aplikasi. Solusinya gampang: samain konstanta 8 MiB di keempat lapisan biar nggak ada celah.
#file-upload#nginx#fastapi - 19.51devops
Memperbaiki Tautan Bukti Setelah Penulisan Ulang Riwayat Git
Hash commit berubah massal saat riwayat git ditulis ulang. Remap referensi Bukti lewat commit-map, termasuk penanganan hash nol.
TL;DR: Jadi gini, pas riwayat repo dibersihin, hash commit ikut berubah semua, bukan cuma yang ada datanya. Hash lama di kolom Bukti jadi mati, tapi tenang, file commit-map nyimpen pemetaan lama ke baru. Pelajarannya: jangan simpen hash mentah buat jangka panjang, mending pakai tag atau branch per isu.
#git#git-filter-repo#commit-map - 22.51devops
Menutup Pintu Tidak Menyembunyikan Laci
Port deploy ditutup, /.git/ tetap kebaca lewat hostname staging. Dua lapis penutup berikutnya: guard regex nginx edge dan network split api/db.
TL;DR: Tutup port inbound doang ternyata belum cukup aman, soalnya path sensitif kayak .git dan .env masih kebuka lewat hostname staging. Solusinya tiga lapis: blokir dotfiles di nginx edge, pisah network Docker per kelompok service biar nggak ada jalur lateral, plus server_tokens off buat sembunyiin versi. Kuncinya, satu lapis nggak cukup, harus saling nutup lubang.
#nginx#docker#devops - 22.30devops
Deploy Staging Dibekukan: Ritual Per-Commit Digantikan Tunnel
Port inbound buat deploy ditutup total: staging KotaPortal kini dilayani lewat tunnel outbound-only, tanpa ritual deploy per-commit.
TL;DR: Deploy staging tiap commit beneran hilang, bukan error—backend KotaPortal sekarang dilayani lewat Cloudflare Tunnel dari VPS, jadi nggak perlu job deploy lagi. Origin cukup punya koneksi outbound ke port 7844, port inbound boleh ditutup total, malah lebih aman. Frontend tetap pakai preview bawaan hosting, backend lewat tunnel, reviewer nggak perlu tahu bedanya.
#cloudflare#cloudflared#deployment - 05.30security
Jaringan Keamanan Mekanis yang Dirancang untuk Diam
Hook rahasia yang membedakan temuan dari error, CI yang mengumpulkan temuan tanpa merahkan build, dan ZAP mingguan yang skip dengan rapi.
TL;DR: Hook gitleaks suka bikin commit gagal cuma gara-gara error lingkungan, bukan bocoran beneran. Solusinya: blokir cuma kalau exit 1 plus laporan JSON valid, sisanya cukup peringatan. CI dan ZAP mingguan juga kalem, cuma ngumpulin temuan buat direview, nggak asal bikin build merah tanpa bukti nyata.
#security#gitleaks#github-actions - 04.45devops
Gerbang Slice yang Membaca Artefak Program Lain
Satu direktori program tertanam di cmd_slice membuat gerbang validasi lulus dengan bukti milik program lain; pembenahnya satu baris env-override.
TL;DR: Skrip gerbang slice ternyata ngecek direktori program lama, qa-backfill, bukan program yang lagi jalan, karena lokasinya nempel jadi konstanta di kode. Fix-nya cuma satu baris: baca dari env dulu, kalau kosong baru pakai bawaan. Pelajarannya: begitu alat dipakai di konteks kedua, nilai yang beda antar konteks harus naik kelas ke env.
#bash#coding-agent#validasi-input - 04.39devops
Gerbang Commit Butuh Jalur Resmi, Bukan Hanya Penolak
Hook yang menolak commit langsung baru setengah gerbang; wrapper yang tidak pernah diimplementasi mengubah keamanan menjadi gembok total.
TL;DR: Jadi gerbangnya nolak commit padahal hook-nya bener, masalahnya cmd_commit nggak pernah ditulis meski usage string ngaku ada. Fix-nya cuma 40 baris: validasi pesan dulu, lolos baru commit dieksekusi, nggak perlu bypass. Selftest kasus 19 mastiin penolakan bersih, commit pas, dan nggak dobel.
#git-hooks#coding-agent#bash - 04.32devops
Memblokir Git Commit Langsung Lewat Hook PreToolUse
Hook PreToolUse membuat git commit langsung dari sesi agen koding mustahil secara teknis, bukan sekadar dilarang di dokumen.
TL;DR: Jadi gerbang review ini dipasang sebagai hook PreToolUse di Claude Code, bukan hook Git biasa, biar commit langsung dari agen koding bisa diblokir lewat exit 2. Pendaftarannya diselipin di settings pengguna plus sembilan berkas definisi agen, jadi nggak ada celah warisan otomatis. Ujinya udah ditolak dua kali bare, bukti fail-closed-nya works.
#git-hooks#coding-agent#keamanan-proses - 02.54devops
Token Status Review: Utang Review yang Bisa Digrep
Empat token review:* plus validator papan membuat utang review agen terlihat, terhitung, dan bisa dibatch tanpa menunda permukaan keamanan.
TL;DR: Review per irisan kan bolak-balik dan boros token, padahal irisan kecil bayarnya sama mahalnya sama yang gede. Jadi tiap baris wajib bawa token review, yang nyentuh keamanan tetap langsung direview, sisanya nunggu dibatch bareng pas antrean numpuk. Untungnya statusnya bisa digrep, jadi nggak ada utang review yang sembunyi di kepala.
#code-review#ai-agents#workflow