展開する
インスタンスを enforce に移行する方法と、既知の制限
展開する
enforce が既定です。スクリプトやほかのシステムが REST でフォームを起動するインスタンスでは、何かを拒否する前に ログを見ながら、段階的に移行してください。
- インスタンス全体に
LAUNCH_VALIDATION=logを設定します (アップグレードの場合は、アップグレードの前に)。 - しばらくこのモードで運用し、ログを確認します。
would refuseの警告は、ルールに反する起動を 示します。extravars differの警告は、サーバー上で異なる計算をするフォーム (タイムスタンプ、外部のデータ) を 示します。それが問題になるかどうかを、フォームごとに判断してください。 - それらのフォームを
launchValidation: enforceに切り替えます。無効な値や作り出した extravars を送信していた呼び出し元は、 理由とともに422を受け取るようになります。 - すべてのフォームが期待どおりに動作したら、インスタンス全体の
LAUNCH_VALIDATIONを削除します (またはenforceに設定します)。
制限
起動時の検証は、まだすべてを網羅しているわけではありません。
- ウィザードフォーム は変更ありで再起動できません。また、7.0 より前に起動されたウィザードのジョブは、
enforceでは再起動できません (ステップの値を保存していなかったため)。MCP サーバーは ウィザードフォームを起動できません。 - ブラウザーでの プレースホルダーの解決 は、サーバーのコードの独自のコピーを使っています。 まれなエッジケース (
__undefined__、式内の引用符) では、両者がプレースホルダーを異なる方法で解決する可能性があります。logでそのような差異がわかります。 runLocalの式は、ブラウザーではブラウザーの JavaScript エンジンで、サーバーでは サンドボックスで実行されます。同じコードは同じ結果を生みますが、ブラウザーのタイムゾーンやロケールに依存する部分は例外です。
ウィザードフォーム
ウィザード はステップごとにチェックされます。ブラウザーは各ステップの値を送信し、 サーバーは、ユーザーが送信するはずのすべてのステップを、それぞれのサブフォームに照らしてチェックします。
optionalでユーザーがスキップしたステップ、またはwhenが false のステップは除外されます。- ステップは、チェック済みの値を持つ前のステップを
$(__parent__.<step>.<field>)で読み取ります。 - エラーには、
<step>.<field>のようにステップとフィールドが示されます。 enforceでは、extravars はサーバーで作成され、各ステップはそのdefaultModelの下に置かれます。- ウィザードでは file フィールドはサポートされていません。