型付きCloudリクエストを検証する

Altifigence CLIでプロジェクト、メンバー、ソース、ワークスペースのリクエストをローカルで検査し、型付きリクエストのプレビューを確認します。

Linux上のAltifigence CLI 0.1.9を使用して型付きリクエスト文書を検証し、メソッド、パス、ヘッダー、本文を確認します。

リクエストを準備する

この例をrequest.jsonとして保存してください。

{
  "schema": "altifigence.dds.cloud-request.v1",
  "orgId": "11111111-1111-4111-8111-111111111111",
  "action": {
    "type": "project-create",
    "body": {
      "name": "Counter",
      "slug": "counter"
    }
  }
}

organizationsではorgIdとprojectIdを省略してください。project-listとproject-createにはorgIdを含めます。project-get、project-update、project-delete、およびすべてのメンバー、ソース、ワークスペースのアクションには、orgIdとprojectIdの両方を含めてください。v1〜5形式の小文字UUIDを使用します。

member-add、member-update、member-removeでは、メンバーのuserIdをactionに指定してください。member-addとmember-updateには、roleとしてowner、editor、viewerのいずれかも指定してください。ワークスペースのアクションでは、ワークスペース操作をaction.request内に配置してください。

検証してプレビューを確認する

alti --json ide cloud contract --request request.json

終了ステータス0は契約が有効であることを示します。この例では、次のJSON結果が生成されます。

{
  "schema": "altifigence.dds.cloud-contract.v1",
  "status": "contract-only",
  "validated": true,
  "executed": false,
  "authorizationChecked": false,
  "authorization": {
    "kind": "native-cli-pkce",
    "clientId": "altifigencecli",
    "productId": "altifigence-cli",
    "selectedOrganizationRequired": true,
    "genericCloudTokenAccepted": false
  },
  "request": {
    "method": "POST",
    "path": "/v1/native/orgs/11111111-1111-4111-8111-111111111111/projects",
    "headers": {
      "Content-Type": "application/json"
    },
    "body": {
      "name": "Counter",
      "slug": "counter"
    }
  }
}

request.method、request.path、request.bodyを確認してください。レシートには、status: "contract-only"、executed: false、authorizationChecked: falseとしてローカル検証が記録されます。

同じ文書を標準入力から読み取るには、次を実行してください。

alti --json ide cloud contract --request - < request.json

拒否されたリクエストを修正する

プロジェクト名が空の場合、終了ステータス2で次の結果が生成されます。

{
  "schema": "altifigence.dds.cloud-receipt.v1",
  "ok": false,
  "executed": false,
  "error": {
    "code": "INVALID_PROJECT_BODY"
  }
}

名前をCounterなどの空でない値に変更し、文書を保存して、検証コマンドをもう一度実行してください。

CLOUD_IDENTITY_SCOPE_MISMATCHの場合は、orgIdとprojectIdをアクションに合わせてください。たとえば、project-createリクエストからprojectIdを削除し、再度検証します。INVALID_CLOUD_IDENTITYの場合は、v1〜5形式の小文字UUIDを指定してください。

INVALID_CLOUD_CONTRACTの場合は、JSON構文とリクエストのフィールド名を確認してください。UNSUPPORTED_CLOUD_CONTRACTの場合は、schemaをaltifigence.dds.cloud-request.v1に設定してください。各文書は1402200バイト以内にしてください。

CLIで最初の操作を成功させる