Lewati ke isi

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 /login jika cookie gate tidak ada.
  • Form login meminta password tunggal. Password salah → muncul error "Password salah" inline (status 401).
  • Password benar → cookie huph_form_gate di-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):

Bash
# 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

  1. Buka https://form.huph.val.id di browser apa saja.
  2. Akan redirect ke /login. Masukkan password yang dibagikan admin team.
  3. Setelah login, Anda landing di halaman cluster picker (atau halaman asli yang Anda tuju, misal /admin/live-kb).
  4. 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