パブリッシュされたルールセットの変更によるカスタムルールセットの作成

パブリッシュされたルールセットがほとんどのニーズを満たしている場合は、それをカスタムルールセットのベースとなる例として使用することを検討します。

パブリッシュされたルールセットを変更することでカスタムルールセットを作成する手順は、次のとおりです。

  1. Anypoint Platform UI を使用して、パブリッシュされたルールセット (「前の」ルールセット) を Exchange からダウンロードします。

  2. 必要に応じて、Anypoint CLI を使用して「前の」ルールセット内の​ルールをリストします​。

  3. ルールセットをコピーし、​Anypoint CLI を使用​するか手動でルール (「後の」ルールセット) を変更します。

  4. 必要に応じて、Anypoint CLI を使用して「後の」ルールセット内の​ルールを​リストします。

  5. Anypoint CLI を使用して、カスタムルールセットを検証し、ドキュメントを生成し、パブリッシュします。カスタムルールセットの検証とパブリッシュを参照してください。

Anypoint CLI を使用したルールの重要度の変更またはルールの有効化/無効化

Anypoint CLI を使用してサンプルルールセットをコピーおよびカスタマイズする方法について、この動画をご覧ください。この動画とドキュメントを使用して、サンプルルールセットのダウンロード、Anypoint CLI を使用したルールの変更、カスタマイズしたルールセットのパブリッシュを開始します。

Anypoint CLI を使用したルールセットのコピーと変更

Anypoint CLI を使用してカスタムルールセットを作成するには、​governance:ruleset:clone​ コマンドを使用します。

governance:ruleset:clone

> governance:ruleset:clone [フラグ] <ruleset> <new_title> <new_description>

このコマンドは、ガバナンスルールセットをコピーして新しいカスタムルールセットを作成し、フラグに基づいて指定された更新をルールに適用します。新しいルールセットが標準出力に書き込まれます。

new-title​ パラメーターでは、新しいルールセットのタイトルを指定します。

new description​ パラメーターでは、新しいルールセットのタイトルを指定します。

このコマンドを実行する前に、​governance:ruleset:info​ コマンドを実行して、このコマンドで使用するルール ID 情報を取得します。

このコマンドでは、デフォルトのフラグ以外に次のフラグも受け入れます。

フラグ 説明

--remote

コピーするルールセットが Exchange でパブリッシュされていること、および ​ruleset​ パラメーターがルールセットのアセット識別子であることを示します。アセット識別子は、Exchange 内の各アセットを一意に識別するグループ ID、アセット ID、およびバージョン (GAV) です。例: <group_id>/<asset_id>/<version>

Exchange アセット識別子 (GAV) を取得する​を参照してください。

--error=<list_rules_to_move_to_error>

error​ フラグの後には、ルールセット YAML のエラーの重要度レベルセクションに移動するルールのルール ID が続きます。

--warning=<list_rules_to_move_to_warning>

warning​ フラグの後には、ルールセット YAML の警告の重要度レベルセクションに移動するルールのルール ID が続きます。

--info=<list_rules_to_move_to_info>

info​ フラグの後には、ルールセット YAML の情報の重要度レベルセクションに移動するルールのルール ID が続きます。

--remove=<list_rules_to_disable>

remove​ フラグの後には、ルールセット YAML でコメントアウトして実質的に無効にするルールのルール ID が続きます。

コマンド例:

anypoint-cli-v4 governance:ruleset:clone ~/Downloads/ruleset.yaml 'New Ruleset from Clone' 'Cloned from ruleset.yaml' --warning=operation-default-response,operation-operationId > mynewruleset.yaml

anypoint-cli-v4 governance:ruleset:clone 68ef9520-24e9-4cf2-b2f5-620025690913/anypoint-best-practices/1.0.2 'Custom Anypoint Best Practices' 'Cloned from MuleSoft Anypoint Best Practices' --remote --remove=openapi-tags,operation-tags > my-anypoint-best-practices.yaml

Anypoint CLI を使用したルールセットルールのリスト

必要に応じて、次のタイミングで Anypoint CLI を使用してルールをリストします。

  • ルールセットの変更前。何を変更するかを決定するのに役立ちます (「前の」リスト)。

  • ルールセットの変更後 (「後」のリスト)。「前」のリストと比較して変更すべきものが変更されたことを確認します。

リダイレクト演算子 (上書きするには ​>​、追加するには ​>>​) を使用して、​info​ コマンドの出力をファイルに書き込み、比較を容易にします。

ルールセットのルールをリストするには、​governance:ruleset:info​ コマンドを使用します。

governance:ruleset:info

> governance:ruleset:info <governance-ruleset> [フラグ]

このコマンドは、​governance-ruleset​ パラメーターで渡されたルールセット定義のルールセットルールをリストします。

このコマンドには複数オプションのフラグがあります。コマンドで複数オプションのフラグを使用する場合は、フラグの前にパラメーターを置くか、パラメーターの前に「-- 」(2 つのダッシュの後にスペース) を使用します。

このコマンドでは、デフォルトのフラグ以外に次のフラグも受け入れます。

フラグ 説明

--remote

情報を取得するルールセットが Exchange でパブリッシュされていること、および ​ruleset​ パラメーターがルールセットのアセット識別子であることを示します。アセット識別子は、Exchange 内のアセットを一意に識別するグループ ID、アセット ID、およびバージョン (GAV) です。例: <group_id>/<asset_id>/<version>​。ここで、​<version>​ は ​latest​ の特定のバージョンです。バージョンとして ​latest​ を使用する場合、プロファイルの作成後にバージョンがパブリッシュされると、プロファイルはルールセットの最新バージョンを自動的に使用します。

Exchange アセット識別子 (GAV) を取得する​を参照してください。

コマンド例:

anypoint-cli-v4 governance:ruleset:info myrulesetfolder/myruleset.yaml

anypoint-cli-v4 governance:ruleset:info 68ef9520-24e9-4cf2-b2f5-620025690913/anypoint-best-practices/1.0.2 --remote

anypoint-cli-v4  governance:ruleset:info 68ef9520-24e9-4cf2-b2f5-620025690913/anypoint-best-practices/latest --remote

出力例:

Ruleset myrulesetfolder/myruleset.yaml
Ruleset conforms with Dialect
╔═══════════╤═══════════════════════════════════╗
║ Violation │ security-fields-operation-empty   ║
╟───────────┼───────────────────────────────────╢
║ Violation │ access-tokens-oauth2-cleartext    ║
╟───────────┼───────────────────────────────────╢
║ Violation │ insecure-oauth2-grants            ║
╟───────────┼───────────────────────────────────╢
║ Violation │ api-keys-in-cookie                ║
╟───────────┼───────────────────────────────────╢
║ Violation │ api-keys-in-query                 ║
╟───────────┼───────────────────────────────────╢
║ Violation │ api-keys-in-header                ║
╟───────────┼───────────────────────────────────╢
║ Violation │ api-negotiates-authentication     ║
╟───────────┼───────────────────────────────────╢
║ Violation │ insecure-basic-auth               ║
╟───────────┼───────────────────────────────────╢
║ Violation │ bearer-token-cleartext            ║
╟───────────┼───────────────────────────────────╢
║ Violation │ http-token-cleartext              ║
╟───────────┼───────────────────────────────────╢
║ Violation │ oauth2-redirections-non-encrypted ║
╟───────────┼───────────────────────────────────╢
║ Violation │ unknown-security-scheme           ║
╟───────────┼───────────────────────────────────╢
║ Violation │ valid-server-urltemplate          ║
╟───────────┼───────────────────────────────────╢
║ Violation │ valid-oauth2-redirection-urls     ║
╟───────────┼───────────────────────────────────╢
║ Warning   │ unknown-security-scheme           ║
╟───────────┼───────────────────────────────────╢
║ Warning   │ oauth1-deprecated                 ║
╚═══════════╧═══════════════════════════════════╝

Exchange アセット識別子 (GAV) を取得する

Exchange アセットの GAV を取得するには、次の操作を実行します。

  • Exchange CLI を使用している場合、​exchange:asset:list​ コマンドを実行します。

  • Exchange Web UI を使用している場合、Exchange でアセットを選択し、URL からグループ ID とアセット ID をコピーします。次に、表示しているバージョンのバージョンノードを追加します。たとえば、Exchange の「OpenAPI Best Practices (OpenAPI ベストプラクティス)」ルールセットの GAV は ​68ef9520-24e9-4cf2-b2f5-620025690913/open-api-best-practices/1.0.1​ です。

ルールセットを変更するサンプルコマンドシーケンス

次のサンプルシーケンスを使用して、ルールセットの変更を開始します。フォルダー名、ルールセットファイル名、ルールセットドキュメント ZIP ファイル名などの詳細を独自の詳細に置き換えます。

anypoint-cli-v4 governance ruleset info 68ef9520-24e9-4cf2-b2f5-620025690913/anypoint-best-practices/1.0.2 --remote > before-rules-list (1)

anypoint-cli-v4 governance ruleset clone ~/MyRulesetFolder/myruleset.yaml 'New Ruleset from Clone' 'Cloned from myruleset.yaml' --warning=operation-default-response,operation-operationId > mynewruleset.yaml (2)

anypoint-cli-v4 governance ruleset info ~/MyRulesetFolder/mynewruleset.yaml > after-rules-list (3)
1 カスタムバージョンを作成するために変更する、パブリッシュされたルールセットのパブリッシュされたバージョンでのルールをリストします。
2 ダウンロードしたルールセット ​myruleset.yaml​ をコピーし、新しいカスタムルールセット ​mynewruleset​ を作成します。​mynewruleset​ の警告セクションに ​operation-default-response​ ルールと ​operation-operationId​ ルールを配置します。
3 変更されたバージョンのルールセット ​mynewruleset.yaml​ のルールをリストし、ルールが希望どおりであることを確認します。

次のステップ

ルールセットを変更したら、カスタムルールセットの検証とパブリッシュを参照してください。