Langsung ke konten
Clinford Jordano Valencia
Semua proyek
PlatformWebMobile

KYC Studio, Alur Berbasis Skema

Platform UI berbasis konfigurasi dengan config-as-code berbasis Git, sehingga perubahan kepatuhan dirilis dalam hitungan jam tanpa deploy frontend.

Peran
Senior Frontend Engineer
Periode
2025–sekarang
Stack
TypeScript · jsonform · Mini Program · Git · CI/CD · Schema validation

Masalahnya

Alur verifikasi untuk lebih dari 100 negara berarti kode yang terduplikasi dan tiket engineering setiap kali tim kepatuhan atau produk ingin mengubah aturan suatu wilayah.

Pendekatannya

  • Render formulir dari skema. UI membaca konfigurasi JSON atau YAML lewat jsonform: skema menghasilkan field dan aturan validasi. Aksi kustom, seperti memulai bridge NFC native atau pengecekan liveness, tetap di kode.
  • Satu langkah, hasil berbeda. Konfigurasi menentukan apa yang dilakukan sebuah langkah untuk setiap negara dan platform (web, mobile, atau Mini Program). Di tempat yang mendukung NFC, langkah itu menampilkan panduan pemindaian dan tombol Pindai dengan NFC; di tempat lain menampilkan field formulir biasa dan tombol Lanjut. Tim produk dan kepatuhan mengubahnya di konfigurasi, bukan di kode.
  • Config as code. Petugas kepatuhan dan produk mengajukan perubahan lewat Git. Setiap perubahan membuka pull request otomatis dan menjalankan CI dengan validasi skema ketat yang didukung tipe TypeScript, sehingga konfigurasi yang salah gagal sebelum sampai ke produksi.

Dua keputusan yang perlu dijelaskan

jsonform untuk rendering, kode untuk aksi. UI yang sepenuhnya dikendalikan server dan menjalankan logika sembarang dari server mengundang risiko remote code execution dan masalah performa. Rendering berbasis data dengan aksi yang terikat ke handler yang sudah dikompilasi menjaga fleksibilitas tanpa risiko itu.

Git, bukan formulir admin. Kemudahan mengedit tanpa tata kelola akan merusak alur produksi. Pull request, pengecekan tipe, dan CI membuat setiap perubahan jelas pembuatnya, ditinjau, dan mudah dikembalikan.

Hasilnya

Rilis konfigurasi tidak lagi bergantung pada deploy frontend, sehingga pembaruan kepatuhan multi-pasar turun dari hitungan minggu menjadi jam, dan duplikasi kode antarwilayah berhenti bertambah.