展開する

インスタンスを enforce に移行する方法と、既知の制限

  1. 展開する
  2. 制限
  3. ウィザードフォーム

展開する

enforce が既定です。スクリプトやほかのシステムが REST でフォームを起動するインスタンスでは、何かを拒否する前に ログを見ながら、段階的に移行してください。

  1. インスタンス全体に LAUNCH_VALIDATION=log を設定します (アップグレードの場合は、アップグレードの前に)。
  2. しばらくこのモードで運用し、ログを確認します。 would refuse の警告は、ルールに反する起動を 示します。 extravars differ の警告は、サーバー上で異なる計算をするフォーム (タイムスタンプ、外部のデータ) を 示します。それが問題になるかどうかを、フォームごとに判断してください。
  3. それらのフォームを launchValidation: enforce に切り替えます。無効な値や作り出した extravars を送信していた呼び出し元は、 理由とともに 422 を受け取るようになります。
  4. すべてのフォームが期待どおりに動作したら、インスタンス全体の LAUNCH_VALIDATION を削除します (または enforce に設定します)。

制限

起動時の検証は、まだすべてを網羅しているわけではありません。

  • ウィザードフォーム は変更ありで再起動できません。また、7.0 より前に起動されたウィザードのジョブは、 enforce では再起動できません (ステップの値を保存していなかったため)。MCP サーバーは ウィザードフォームを起動できません。
  • ブラウザーでの プレースホルダーの解決 は、サーバーのコードの独自のコピーを使っています。 まれなエッジケース ( __undefined__、式内の引用符) では、両者がプレースホルダーを異なる方法で解決する可能性があります。 log でそのような差異がわかります。
  • runLocal の式は、ブラウザーではブラウザーの JavaScript エンジンで、サーバーでは サンドボックスで実行されます。同じコードは同じ結果を生みますが、ブラウザーのタイムゾーンやロケールに依存する部分は例外です。

ウィザードフォーム

ウィザード はステップごとにチェックされます。ブラウザーは各ステップの値を送信し、 サーバーは、ユーザーが送信するはずのすべてのステップを、それぞれのサブフォームに照らしてチェックします。

  • optional でユーザーがスキップしたステップ、または when が false のステップは除外されます。
  • ステップは、チェック済みの値を持つ前のステップを $(__parent__.<step>.<field>) で読み取ります。
  • エラーには、 <step>.<field> のようにステップとフィールドが示されます。
  • enforce では、extravars はサーバーで作成され、各ステップはその defaultModel の下に置かれます。
  • ウィザードでは file フィールドはサポートされていません。