API Governance の CLI

governance​ コマンドを使用して、API Governance のプロセスを自動化します。これらのコマンドの使用方法は、​API Governance ドキュメント​を参照してください。

コマンド

説明

governance:api:evaluate

検索条件を評価して、その条件を満たす API に適用されるルールセットを決定する

governance:api:inspect

API 仕様を調べ、そのスキーマをリストする

governance:api:validate

指定されたガバナンスルールセットに対して API 仕様を検証する

governance:document

ガバナンスルールセット定義のドキュメントファイルを作成する

governance:profile:create

ガバナンスプロファイルを作成する

governance:profile:delete

ガバナンスプロファイルを削除する

governance:profile:info

特定のガバナンスプロファイル ID の情報をリストする

governance:profile:list

組織内のすべてのガバナンスプロファイルをリストする

governance:profile:update

ガバナンスプロファイルを更新する

governance:ruleset:clone

ガバナンスルールセットをコピーし、指定された更新をルールに適用する

governance:ruleset:info

ルールセットルールをリストする

governance:ruleset:init

データスキーマに基づいてガバナンスルールセット定義を初期化する

governance:ruleset:validate

ガバナンスルールセット定義の形式を検証する

governance:api:evaluate

> governance:api:evaluate [フラグ]

このコマンドは、指定された検索条件を評価して、その条件を満たす API に適用されるルールセットを決定します。

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

フラグ 説明

--api=<api>

評価する API プロジェクト。このコマンドは、プロジェクトの ​exchange.json​ ファイルの条件を使用します。

--criteria <filtertype:filtervalue>,…​

ルールセットを識別するために評価する検索条件を適用できます。カンマ区切りの検索条件のリストを指定します。各検索条件の種別と値は、​filtertype:filtervalue​ の形式です。

次のような検索条件を使用できます。

  • scope​: API 種別、​rest-api​ または ​async-api

  • tag​: Exchange で API に対して定義されたタグ

  • category​: Exchange で API に対して定義されたカテゴリ。検索条件値は ​categoryName:value​ として 2 つの部分で指定されます。

  • env-type​: 環境種別 (すべて、本番、または Sandbox)

  • env-id​: API Manager の環境名の ID。​[API Manager]​ > ​[Environment information (環境情報)]​ を使用してこの値を取得できます。​「環境の概念の確認」​を参照してください。

    env-type​ または ​env-id​ が使用されている場合、プロファイルに ​[API Instance (API インスタンス)]​ 検索条件が設定されるため、インスタンスが設定された API のみが絞り込まれます。

    CLI を使用してプロファイルの ​[API Instance (API インスタンス)]​ を選択解除するには、​env-type​ も ​env-id​ も含まれない ​--criteria​ フラグを使用してプロファイルを更新します。

例: tag:tag1,category:category1:value,category:category2:value2,scope:rest-api,scope:async-api,env-type:production

このコマンドは、​--criteria​ または ​--api​ フラグを使用して実行する必要があります。

コマンド例:

anypoint-cli-v4 governance:api:evaluate --criteria "tag:best,category:API Type:Experience API,scope:rest-api"

anypoint-cli-v4 governance:api:evaluate --api order-api-1.0.0-raml.zip
ここで、​order-api-1.0.0-raml.zip​ には API とその ​exchange.json​ ファイルが含まれています。

出力例:

╔════════════════════════════════════════════════════════════════════╗
║ Ruleset GAV                                                        ║
╟────────────────────────────────────────────────────────────────────╢
║ 68ef9520-24e9-4cf2-b2f5-620025690913/anypoint-best-practices/1.5.1 ║
╟────────────────────────────────────────────────────────────────────╢
║ 68ef9520-24e9-4cf2-b2f5-620025690913/anypoint-best-practices/1.0.1 ║
╚════════════════════════════════════════════════════════════════════╝

governance:api:inspect

> governance:api:inspect [フラグ] <api-specification>

このコマンドは、​api-specification​ で渡された API 仕様を調べ、ヘッダー、要求、応答ペイロードなどのすべてのスキーマをリストします。このスキーマ情報は、​governance:ruleset:init​ コマンドで使用できます。​governance:ruleset:init​を参照してください。

このコマンドでは、デフォルトのフラグのみを受け入れます。

コマンド例:

anypoint-cli-v4 governance:api:inspect my-healthcare-api.yaml

スキーマの例

types:
  patientmultipleBirthBoolean:
    properties:
      multipleBirthBoolean:
        description: Whether patient is part of a multiple birth
        type: boolean
  patientmultipleBirthInteger:
    properties:
      multipleBirthInteger:
        description: Whether patient is part of a multiple birth
        type: integer

        .
        .
        .

  PatientEntry:
    type: FHIR_commons.Entry
    properties:
      resource: Patient

  PatientBundle:
    type: FHIR_commons.Bundle
    properties:
      entry?: PatientEntry[]

出力例:

  'patientmultipleBirthBoolean',
  'PatientBundle',
  'patientmultipleBirthInteger',
  'PatientEntry'

governance:api:validate

> governance:api:validate <api-specification> [フラグ]

このコマンドは、指定されたルールセットに対して ​api-specification​ で渡された API 仕様を検証します。

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

api-specification​ は次のいずれかとして指定できます。

  • API プロジェクト ZIP ファイル

  • API プロジェクトフォルダー

  • --remote​ フラグが指定されている場合は、API プロジェクトのアセット識別子。アセット識別子は、Exchange 内の各アセットを一意に識別するグループ ID、アセット ID、およびバージョン (GAV) です。

検証するルールセットを次のように指定できます。

  • API プロジェクトのルールセットの連動関係を定義する既存の ​exchange.json​ ファイルを使用するには、​api-specification​ で指定したフォルダーまたは ZIP ファイルに ​exchange.json​ ファイルが含まれていることを確認してください。​exchange.json​ ファイルが存在する場合、このコマンドはすべてのルールセット連動関係をダウンロードし、それらのルールセットに対して検証します。ルールセットの連動関係は、API Designer でその API プロジェクトに連動関係が定義されている場合にのみ、​exchange.json​ ファイルに存在します。​「プロジェクトへのルールセットの追加」​を参照してください。

  • Exchange でパブリッシュされているルールセットに対して直接検証するには、​--remote-rulesets​ フラグを使用します。

  • ローカルルールセットに対して検証するには、​---rulesets​ フラグを使用します。

重複するルールセットは検出されないため、同じコマンドの実行でルールセットを特定する前述の方法を複数使用すると、一部のルールセットが複数回検証される場合があります。

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

フラグ 説明

--rulesets <ruleset-yaml-file1> <ruleset-yaml-file2> …​

ローカルルールセット定義。​rulesets​ フラグの後には、カンマで区切られたルールセット YAML ファイルのリストが続きます。

--remote-rulesets <ruleset-asset-identifier> <ruleset-asset-identifier> …​

リモートルールセット定義。​remote-rulesets​ フラグの後には、カンマで区切られたルールセットアセット識別子のリストが続きます。アセット識別子は、Exchange 内の各アセットを一意に識別するグループ ID、アセット ID、およびバージョン (GAV) です。例: <group_id>/<asset_id>/<version>,<group_id>/<asset_id>/<version>

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

--remote

パブリッシュされた API に対して検証を行う必要があることを示すフラグ。​api-specification​ で渡される値は、API のアセット識別子です。アセット識別子は、Exchange 内の各アセットを一意に識別するグループ ID、アセット ID、およびバージョン (GAV) です。例: <group_id>/<asset_id>/<version>

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

コマンド例:

anypoint-cli-v4 governance:api:validate /MyApis/order-api-1.0.0-raml.zip

anypoint-cli-v4 governance:api:validate /MyApis/order-api-1.0.0-raml

anypoint-cli-v4 governance:api:validate /MyApis/order-api-1.0.0-raml.zip --rulesets /MyRulesets/ruleset1.yaml /MyRulesets/ruleset2.yaml

anypoint-cli-v4 governance:api:validate /MyApis/order-api-1.0.0-raml.zip --remote-rulesets 68ef9520-24e9-4cf2-b2f5-620025690913/open-api-best-practices/1.0.1

anypoint-cli-v4 governance:api:validate 8a840abd-e63a-4f8b-87ab-24052eda2017/order-api/1.0.0 --remote-rulesets 68ef9520-24e9-4cf2-b2f5-620025690913/open-api-best-practices/1.0.1 --remote

出力例:

ルールセットに適合する仕様の場合:

 Spec conforms with Ruleset

ルールセットに適合しない仕様の場合:

Conforms: false
Number of results: 3 (1)

Functional Validations
----------------------

Constraint: http://a.ml/vocabularies/amf/core#declaration-not-found
Severity: Violation
Message: not supported scalar for documentation
Target: null
Range: [(6,3)-(6,3)]
Location: file:///Users/myuser/Downloads/order-api-1.0.0-raml/order-api-1.0.0-raml

Conformance Validations (2)
-----------------------

Constraint: file:///exchange_modules/68ef9520-24e9-4cf2-b2f5-620025690913/anypoint-best-practices/1.0.0/ruleset.yaml#/encodes/validations/api-must-have-documentation (3)
Severity: Warning (4)
Message: Provide the documentation for the API. (5)
Target: amf://id#2 (6)
Range: [(2,0)-(6,4)] (7)
Location: file:///Users/myuser/Downloads/order-api-1.0.0-raml/order-api-1.0.0-raml (8)

Constraint: file:///exchange_modules/8a840abd-e63a-4f8b-87ab-24052eda2017/best-practices-ruleset/1.0.0/bestpractices.yaml#/encodes/validations/api-must-have-documentation
Severity: Violation
Message: Provide the documentation for the API
Target: amf://id#2
Range: [(2,0)-(6,4)]
Location: file:///Users/myuser/Downloads/order-api-1.0.0-raml/order-api-1.0.0-raml
1 見つかった機能および準拠検証の問題の合計
2 準拠の問題セクション
3 この一連の問題が適用されるルールセットとルール
4 問題の重要度
5 問題の説明
6 AMF モデルノード ID。AMF モデルについての詳細は、​「カスタムガバナンスルールセットの作成」​を参照
7 問題が発生した API 仕様の開始行番号と列および終了行番号と列。ここで、列は行の先頭からのオフセットであり、オフセットの番号は 0 で開始
8 問題が発生したファイル (メインファイルまたはその連動関係のいずれか)

governance:document

> governance:document [フラグ] <ruleset> <doc-file>

このコマンドは、​ruleset​ で指定された API Governance ルールセット定義 ZIP ファイルのドキュメントを作成します。ドキュメントを ​doc-file​ ZIP ファイルに含め、Exchange にアップロードしてパブリッシュできるようにします。

このコマンドでは、デフォルトのフラグのみを受け入れます。

コマンド例:

anypoint-cli-v4 governance:document /myrulesetfolder/mynewruleset.yaml /myrulesetfolder/ruleset.doc.zip

出力例:

validation name [ 'security-fields-operation-empty' ]
validation name [ 'access-tokens-oauth2-cleartext' ]
validation name [ 'insecure-oauth2-grants' ]
validation name [ 'api-keys-in-cookie' ]
validation name [ 'api-keys-in-query' ]
validation name [ 'api-keys-in-header' ]
validation name [ 'api-negotiates-authentication' ]
validation name [ 'insecure-basic-auth' ]
validation name [ 'bearer-token-cleartext' ]
validation name [ 'http-token-cleartext' ]
validation name [ 'oauth1-deprecated' ]
validation name [ 'oauth2-redirections-non-encrypted' ]
validation name [ 'unknown-security-scheme' ]
validation name [ 'valid-server-urltemplate' ]
validation name [ 'valid-oauth2-redirection-urls' ]
Saving to myRulesetFolder/ruleset.doc.zip

governance:profile:create

> governance:profile:create [フラグ] <profile-name> <ruleset-asset-identifiers>

このコマンドは、​profile-name​ で指定された新しいガバナンスプロファイル名の文字列値を使用して、ガバナンスプロファイルを作成します。

ruleset-asset-identifiers​ を含める必要があります。これは、ルールセットアセット識別子のカンマ区切りのリストであり、それぞれが Exchange 内の各アセットを一意に識別するグループ ID、アセット ID、およびバージョン (GAV) です。例: <group_id>/<asset_id>/<version>,<group_id>/<asset_id>/<version>​。ここで、​<version>​ は ​latest​ の特定のバージョンです。バージョンとして ​latest​ を使用する場合、プロファイルの作成後にバージョンがパブリッシュされると、プロファイルはルールセットの最新バージョンを自動的に使用します。​Exchange アセット識別子 (GAV) を取得する​を参照してください。

notify​ フラグの 1 つを使用して、作成中のプロファイルの通知を設定できます。​notify​ フラグを使用しない場合、コマンドによって通知は設定されません。通知はデフォルトでオフになっています。

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

フラグ 説明

--criteria <filtertype:filtervalue>,…​

検索条件を適用して、プロファイルルールセットが適用される API のリストを選択できます。カンマ区切りの検索条件のリストを指定します。各検索条件の種別と値は、​filtertype:filtervalue​ の形式です。

次のような検索条件を使用できます。

  • scope​: API 種別、​rest-api​ または ​async-api

  • tag​: Exchange で API に対して定義されたタグ

  • category​: Exchange で API に対して定義されたカテゴリ。検索条件値は ​categoryName:value​ として 2 つの部分で指定されます。

  • env-type​: 環境種別 (すべて、本番、または Sandbox)

  • env-id​: API Manager の環境名の ID。​[API Manager]​ > ​[Environment information (環境情報)]​ を使用してこの値を取得できます。​「環境の概念の確認」​を参照してください。

    env-type​ または ​env-id​ が使用されている場合、プロファイルに ​[API Instance (API インスタンス)]​ 検索条件が設定されるため、インスタンスが設定された API のみが絞り込まれます。

    CLI を使用してプロファイルの ​[API Instance (API インスタンス)]​ を選択解除するには、​env-type​ も ​env-id​ も含まれない ​--criteria​ フラグを使用してプロファイルを更新します。

例: tag:tag1,category:category1:value,category:category2:value2,scope:rest-api,scope:async-api,env-type:production

--description <description>

description​ フラグの後には、新しいガバナンスプロファイルの説明である文字列が続きます。

--notify-contact

通知を有効にし、受信者を API に設定された取引先責任者に設定します。

--notify-publisher

通知を有効にし、受信者を API パブリッシャーに設定します。

--notify-others <email ID,email ID,…​>

通知を有効にし、受信者を指定されたメール ID のリストに設定します。

コマンド例:

anypoint-cli-v4 governance:profile:create "OAS Best Practices" 68ef9520-24e9-4cf2-b2f5-620025690913/open-api-best-practices/1.0.1 --criteria "tag:oas,category:API Type:Experience API,scope:rest-api" --description "Profile for OAS Best Practices"

anypoint-cli-v4 governance:profile:create "Open API Best Practices" 68ef9520-24e9-4cf2-b2f5-620025690913/open-api-best-practices/1.0.1 --criteria "tag:oas,category:API Type:Experience API,scope:rest-api" --description "Profile for OAS Best Practices"

anypoint-cli-v4 governance:profile:create "Anypoint Best Practices" 68ef9520-24e9-4cf2-b2f5-620025690913/anypoint-api-best-practices/1.0.1 --criteria "tag:raml tag:oas category:API Type:Experience API,scope:rest-api" --description "Profile for REST API Best Practices" --notify-publisher  --notify-contact --notify-others a@a.a,b@b.com

anypoint-cli-v4 governance:profile:create "Primary API Standards" 68ef9520-24e9-4cf2-b2f5-620025690913/open-api-best-practices/latest,68ef9520-24e9-4cf2-b2f5-620025690913/myorg-best-practices/1.0.2 --criteria "tag:prim,category:API Type:Experience API,scope:rest-api" --description "Profile for Primary API Standards"

出力例:

 Profile Added
 Id         	4f98e59d-8efb-420f-ac95-9cd0af15bd45
 Name       	OAS Best Practices
 Description	Profile for OAS Best Practices
 Rulesets   	gav://68ef9520-24e9-4cf2-b2f5-620025690913/open-api-best-practices/1.0.1
 Filter     	tag:best

governance:profile:delete

> governance:profile:delete [フラグ] <profile-id>

このコマンドは、​profile-id​ によって指定された特定のガバナンスプロファイルを削除します。 この ID を取得するには、​governance:profile:info​ または ​governance:profile:list​ コマンドを実行します。

governance:profile:delete​ コマンドでは、デフォルトのフラグのみを受け入れます。

コマンド例:

anypoint-cli-v4 governance:profile:delete 8ffd463f-86b2-4132-afc6-44d179209362

出力例:

 Profile with id 8ffd463f-86b2-4132-afc6-44d179209362 removed

governance:profile:info

> governance:profile:info [フラグ] <profile-id>

このコマンドは、ガバナンスプロファイル ID のすべての情報をリストします。

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

フラグ 説明

--output <output-format>

コマンド出力の形式。サポートされている値は、​table​ (デフォルト) および ​json​ です。

コマンド例:

anypoint-cli-v4 governance:profile:info 19fb211b-8775-43cc-865a-46228921d6ed

出力例:

Id         	        19fb211b-8775-43cc-865a-46228921d6ed
Name       	        Best Practices
Description	        Best Practices Profile
Rulesets   	        68ef9520-24e9-4cf2-b2f5-620025690913/anypoint-best-practices/1.0.0 8a840abd-e63a-4f8b-87ab-24052eda2017/best-practices-ruleset/1.0.0 68ef9520-24e9-4cf2-b2f5-620025690913/required-examples/1.0.0
Criteria   	        tag:best,category:API Type:Experience API,scope:rest-api
NotificationConfig  Contact,Publisher

governance:profile:list

> governance:profile:list [フラグ]

このコマンドは、組織のすべてのガバナンスプロファイルの情報をリストします。ガバナンスプロファイルを更新するときに、この情報が必要です。

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

フラグ 説明

--output <output-format>

コマンド出力の形式。サポートされている値は、​table​ (デフォルト) および ​json​ です。

コマンド例:

anypoint-cli-v4 governance:profile:list

出力例:

Profile Name                 	Profile Id

Minimum Security Requirements	1f418cf4-b870-4b31-8734-f55f28d45f8f
Best Practices               	19fb211b-8775-43cc-865a-46228921d6ed
New Best Practices           	4eaf9176-3ef9-4021-a67c-6e4bc10d3763
OAS Standards                	51ae8795-2278-407e-942f-becba29af986

governance:profile:update

> governance:profile:update [フラグ] <profile-id>

このコマンドは、​profile-id​ で指定されるガバナンスプロファイルを更新します。 この ID を取得するには、​governance:profile:info​ または ​governance:profile:list​ コマンドを実行します。

ガバナンスプロファイルの一般情報、ルールセット、検索条件、および通知設定を更新できます。​notify​ フラグの 1 つを使用して、通知設定を更新したり、通知を無効にしたりできます。すべての変更で、既存の通知設定が上書きされます。​notify​ フラグを使用しない場合、通知設定は変更されません。

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

フラグ 説明

--profile-name <profile-name>

profile-name​ フラグの後には、新しいガバナンスプロファイル名である文字列が続きます。

--ruleset-gavs <ruleset-gavs>

ruleset-gavs​ フラグの後には、各ルールセットのアセット識別子の ​<group_id>/<asset_id>/<version>,<group_id>/<asset_id>/<version>​ 形式のリストが続きます。ここで、​<version>​ は特定のバージョンまたは ​latest​ です。アセット識別子は、Exchange 内の各アセットを識別する一意のグループ ID、アセット ID、およびバージョン (GAV) です。バージョンとして ​latest​ を使用する場合、プロファイルの作成後にバージョンがパブリッシュされると、プロファイルはルールセットの最新バージョンを自動的に使用します。

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

--criteria <filtertype:filtervalue>,…​

検索条件を適用して、プロファイルルールセットが適用される API のリストを選択できます。カンマ区切りの検索条件のリストを指定します。各検索条件の種別と値は、​filtertype:filtervalue​ の形式です。

次のような検索条件を使用できます。

  • scope​: API 種別、​rest-api​ または ​async-api

  • tag​: Exchange で API に対して定義されたタグ

  • category​: Exchange で API に対して定義されたカテゴリ。検索条件値は ​categoryName:value​ として 2 つの部分で指定されます。

  • env-type​: 環境種別 (すべて、本番、または Sandbox)

  • env-id​: API Manager の環境名の ID。​[API Manager]​ > ​[Environment information (環境情報)]​ を使用してこの値を取得できます。​「環境の概念の確認」​を参照してください。

    env-type​ または ​env-id​ が使用されている場合、プロファイルに ​[API Instance (API インスタンス)]​ 検索条件が設定されるため、インスタンスが設定された API のみが絞り込まれます。

    CLI を使用してプロファイルの ​[API Instance (API インスタンス)]​ を選択解除するには、​env-type​ も ​env-id​ も含まれない ​--criteria​ フラグを使用してプロファイルを更新します。

例: tag:tag1,category:category1:value,category:category2:value2,scope:rest-api,scope:async-api,env-type:production

--description <description>

description​ フラグの後には、新しいガバナンスプロファイルの説明である文字列が続きます。

--notify-off

通知を無効にします。

--notify-contact

通知を有効にし、受信者を API に設定された取引先責任者に設定します。

--notify-publisher

通知を有効にし、受信者を API パブリッシャーに設定します。

--notify-others <email ID,email ID,…​>

通知を有効にし、受信者を指定されたメール ID のリストに設定します。

コマンド例:

anypoint-cli-v4 governance:profile:update 4eaf9176-3ef9-4021-a67c-6e4bc10d3763 --profile-name "MyOrg Best Practices"

anypoint-cli-v4 governance:profile:update 19fb211b-8775-43cc-865a-46228921d6ed --criteria `tag:best,category:API Type:Experience API,scope:rest-api`

anypoint-cli-v4 governance profile update 67eff44a-28a3-43d4-93d9-bddedb92c711 --notify-publisher  --notify-contact --notify-others a@a.a,b@b.com

anypoint-cli-v4 governance profile update 67eff44a-28a3-43d4-93d9-bddedb92c711 --notify-off

anypoint-cli-v4 governance profile update 19fb211b-8775-43cc-865a-46228921d6ed --criteria `tag:best,category:API Type:Experience API,scope:rest-api,env-type:production` --ruleset-gavs 68ef9520-24e9-4cf2-b2f5-620025690913/open-api-best-practices/latest,68ef9520-24e9-4cf2-b2f5-620025690913/myorg-best-practices/latest

出力例:

 Profile updated 51f9f94c-fb0c-43d4-9895-22c9e64f1537

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

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                 ║
╚═══════════╧═══════════════════════════════════╝

governance:ruleset:init

> governance:ruleset:init [フラグ] <schema>

このコマンドは、​schema​ パラメーターで渡されたデータスキーマに基づいてルールセットを初期化します。

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

フラグ 説明

--types <types>

types​ フラグは、ルールとしてエクスポートする対象種別を指定します。​governance:api:inspect​ コマンドを使用して、このフラグで指定する種別を特定できます。​governance:api:inspect​を参照してください。

--name <name>

name​ フラグはルールセットの名前です。デフォルトは ​GeneratedRuleset​ です。

コマンド例:

anypoint-cli-v4 governance:ruleset:init --types patientmultipleBirthBoolean,patientBundle,patientmultipleBirthInteger --name=my-ruleset mydataschema

governance:ruleset:validate

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

このコマンドは、​governance-ruleset​ パラメーターを使用して渡されたルールセット定義を検証します。​governance-ruleset​ パラメーターとして、次のいずれかを渡すことができます。

  • ルールセット定義 YAML ファイル

  • ルールセットをメインファイルとして指定する ​exchange.json​ ファイルを使用した API プロジェクトを含む ZIP ファイル

  • ルールセットをメインファイルとして指定する ​exchange.json​ ファイルを使用する API プロジェクトを含むフォルダー

このコマンドでは、デフォルトのフラグのみを受け入れます。

コマンド例:

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

anypoint-cli-v4 governance:ruleset:validate ~/myrulesetfolder/myruleset.zip

anypoint-cli-v4 governance:ruleset:validate ~/myrulesetfolder/myrulesetfolder

有効なルールセットの出力例:

Ruleset User/myuser/myrulesetfolder/myruleset.yaml
Ruleset conforms with Dialect

無効なルールセットの出力例:

Ruleset does not conform with Dialect
ModelId: file:///Users/myuser/myrulesetfolder/prof-1-bad.yaml
Profile: Validation Profile 1.0
Conforms: false
Number of results: 1

Level: Violation

- Constraint: http://a.ml/amf/default_document#/declarations/profileNode_profile_required_validation
  Message: Property 'profile' is mandatory
  Severity: Violation
  Target: file:///Users/myuser/myrulesetfolder/prof-1-bad.yaml#/encodes
  Property: http://schema.org/name
  Range: [(3,0)-(11,19)]
  Location: file:///Users/myuser/myrulesetfolder/prof-1-bad.yaml

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​ です。