本文へスキップ
Clinford Jordano Valencia
すべてのプロジェクト
プラットフォームWebモバイル

KYC Studio:スキーマ駆動のフロー

Git による設定のコード管理と組み合わせた設定駆動の UI 基盤。コンプライアンスの変更を、フロントエンドのデプロイなしで数時間のうちにリリースできます。

役割
Senior Frontend Engineer
期間
2025–現在
技術スタック
TypeScript · jsonform · Mini Program · Git · CI/CD · Schema validation

課題

100 以上の国と地域の本人確認フローは、コードの重複を生み、コンプライアンスやプロダクトが地域のルールを変えたいたびにエンジニアリングのチケットが必要でした。

アプローチ

  • スキーマからフォームを描画。 UI は jsonform を通じて JSON や YAML の設定を読み込み、スキーマがフィールドと検証ルールを生成します。ネイティブの NFC ブリッジやライブネスチェックの起動といった独自のアクションは、コードに残します。
  • 同じステップ、異なる結果。 各ステップが国やプラットフォーム(Web、モバイル、Mini Program)ごとに何をするかは設定で決まります。NFC に対応している地域では、スキャンの案内と「NFC でスキャン」ボタンを表示し、それ以外では通常のフォームと「続行」ボタンを表示します。プロダクトとコンプライアンスの担当者は、コードではなく設定でこれを変えられます。
  • 設定をコードとして管理。 コンプライアンスとプロダクトの担当者は Git で変更を提出します。変更ごとに pull request が自動で作られ、TypeScript の型に裏付けられた厳格なスキーマ検証を CI で実行するため、不正な設定は本番に届く前に失敗します。

説明しておきたい 2 つの判断

描画は jsonform、アクションはコード。 サーバーから送られた任意のロジックを実行する完全なサーバー駆動 UI は、リモートコード実行のリスクとパフォーマンスの問題を招きます。データ駆動で描画し、アクションは事前にコンパイルされたハンドラーに結びつけることで、柔軟性を保ちつつそのリスクを避けられます。

管理画面ではなく Git。 統制のない手軽な編集は、本番のフローを壊します。Pull request、型チェック、CI によって、すべての変更が誰のものか分かり、レビューされ、簡単に元に戻せます。

結果

設定のリリースがフロントエンドのデプロイに依存しなくなり、複数市場のコンプライアンス更新は数週間から数時間になりました。地域ごとのコードの重複も増えなくなりました。