VetBooking Admin
Happy Paws Vet Clinic
Dashboard operasional sementara untuk review katalog, dokter, slot, payment iPaymu, dan readiness DB repository.
Layanan aktif
3
shared admin data source / Prisma-ready
Dokter aktif
2
policy max 3 aktif per klinik
Slot tersedia
4
TTL hold 15 menit
Payment
iPaymu
sandbox verified, waiting production verification
Layanan
Konsultasi umum
FIXED · 30 menit
Rp150.000
Vaksin anabul
FIXED · 30 menit
Rp180.000
Perawatan luka
VARIABLE · 45 menit
Estimate dokter
Dokter
drh. Anya Putri
Kucing & anjing kecil
drh. Bima Santoso
Bedah minor & luka
Admin write actions
POST /api/admin/services
Validasi FIXED/VARIABLE price, durasi 15-240 menit
preview write · DB persistence pending
POST /api/admin/doctors
Validasi WA format Indonesia 62xxxx
preview write · DB persistence pending
POST /api/admin/slots
Validasi endsAt wajib setelah startsAt
preview write · DB persistence pending
Red-team hardening tracker
TENANT_ISOLATION
partialData klinik bocor lintas tenant karena query tidak difilter clinicId.
Semua repository query wajib menyertakan clinicId; Postgres RLS disiapkan sebagai guardrail DB.
SLOT_RACE
partialDua customer mengambil slot yang sama dalam waktu bersamaan.
Hold slot memakai conditional update id + clinicId + status OPEN dalam transaksi; zero updated rows menjadi SLOT_ALREADY_TAKEN.
WEBHOOK_REPLAY
partialWebhook iPaymu/WhatsApp dikirim ulang atau direplay sehingga state/payment double apply.
Event idempotency key wajib disimpan; duplicate event harus skip tanpa side effect.
PUBLIC_ABUSE
plannedEndpoint publik triage/booking di-spam sampai biaya AI/WA membengkak.
Rate limit per IP + clinic + phone, captcha/risk step-up untuk pola abuse, dan wallet metering.
SECRET_EXPOSURE
implementedCredential payment/WA/AI bocor ke client, log, atau Notion.
Secret hanya env server-side; output status harus pakai [REDACTED]; jangan commit .env.
Slot Monitor
slot_anya_1
OPEN2026-06-11T19:00:36.115Z → 2026-06-11T19:30:36.115Z
slot_anya_2
OPEN2026-06-11T22:00:36.115Z → 2026-06-11T22:30:36.115Z
slot_bima_1
OPEN2026-06-12T20:00:36.115Z → 2026-06-12T20:30:36.115Z
slot_bima_2
OPEN2026-06-12T23:00:36.115Z → 2026-06-12T23:30:36.115Z