Site Gate — Akses ke form.huph.val.id
Tujuan
form.huph.val.id (validation form portal — termasuk cluster portal,
admin live-kb, dan semua halaman terkait) digate dengan shared
password sederhana untuk mencegah crawler publik dan akses tidak
disengaja sebelum tahap GTM. Halaman ini menjelaskan cara pakai gate
dan cara distribusi password.
Bagaimana gate bekerja
- Setiap kunjungan baru ke
form.huph.val.id/*(kecuali/login,/api/auth/gate,/api/internal/*) akan redirect ke/loginjika cookie gate tidak ada. - Form login meminta password tunggal. Password salah → muncul error "Password salah" inline (status 401).
- Password benar → cookie
huph_form_gatedi-set HttpOnly, SameSite=Lax, valid 30 hari per browser/device. - Setelah cookie ada, semua halaman publik portal bisa diakses tanpa prompt ulang.
Untuk admin team — distribusi password
Password tersimpan di /opt/huph/.env sebagai SITE_PASSWORD.
Distribusikan out-of-band (bukan via chat publik atau email
unencrypted) ke:
- 5 PIC leads (satu per cluster: CASS / CBT / CHS / CIST / CNE)
- Operator team yang perlu melihat admin live-kb
- Anggota lain yang punya alasan akses sah
Channel yang OK: 1Password shared vault, password manager organisasi, WhatsApp DM individual ke leads (lalu mereka relay ke timnya).
Channel yang tidak OK: Slack channel publik, email plain text, GitHub issue, screenshot di Notion publik.
Rotate password
Belum ada UI untuk rotate. Jika perlu (mis. password leak):
# Generate password baru, edit /opt/huph/.env, recreate form container
NEW_PW=$(openssl rand -base64 24 | tr -d '=+/' | cut -c1-22)Aa1!
sed -i "s/^SITE_PASSWORD=.*/SITE_PASSWORD=$NEW_PW/" /opt/huph/.env
docker compose -f /opt/huph/docker-compose.uph-form.yml up -d --force-recreate
echo "New password: $NEW_PW"
Cookie lama tetap valid sampai expire (30 hari) atau dikosongkan
manual oleh user. Untuk invalidate semua cookie aktif, rotate
SITE_GATE_SECRET di .env (HMAC signing key) dan recreate
container — semua cookie ter-sign jadi tidak valid.
Untuk operator/PIC — login pertama
- Buka
https://form.huph.val.iddi browser apa saja. - Akan redirect ke
/login. Masukkan password yang dibagikan admin team. - Setelah login, Anda landing di halaman cluster picker (atau halaman
asli yang Anda tuju, misal
/admin/live-kb). - Cookie tersimpan 30 hari — refresh halaman berikutnya tidak perlu prompt ulang.
Login = bukan session PIC
Site gate hanya membuka akses bahwa Anda sah lihat portal — bukan session PIC. Untuk akses tab review per-cluster (AI Suggestions, Live KB, dll), Anda masih perlu magic link yang dikirim admin team ke email PIC. Magic link membuat session PIC yang menentukan cluster Anda.
/admin/live-kb di sisi admin punya HTTP Basic Auth tambahan
(ADMIN_USER / ADMIN_PASS) di atas gate, jadi 3 layer total.
Troubleshooting
Saya login dengan password benar tapi error 500 di halaman home
Pernah terjadi 2026-04-29: middleware Next.js Edge runtime tidak
support Node crypto. Sudah diperbaiki di commit c0252fc. Jika
muncul lagi: cek log docker logs huph-uph-form untuk pesan "edge
runtime" lalu hubungi engineering.
Cookie huph_form_gate ter-set tapi tetap redirect ke /login
Cek waktu sistem browser Anda. Cookie HMAC-signed dengan timestamp + 30 hari TTL — kalau jam browser jauh berbeda dari server, validasi gagal.
Browser bilang "site can't be reached"
DNS atau network problem, bukan gate. Coba dari device lain. Hubungi engineering kalau tetap tidak bisa.
Lihat juga
- Review AI Suggestions — alur PIC setelah lewat gate