Проверка типизированного запроса Cloud

Проверьте запрос проекта, участника, источника или рабочего пространства локально и просмотрите типизированный запрос с помощью Altifigence CLI.

Используйте Altifigence CLI 0.1.9 в Linux, чтобы проверить документ типизированного запроса и просмотреть его метод, путь, заголовки и тело.

Подготовка запроса

Сохраните этот пример как 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. Используйте UUID в нижнем регистре в формате v1–5.

Для 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 в соответствие с действием. Например, удалите projectId из запроса project-create и повторите проверку. При INVALID_CLOUD_IDENTITY укажите UUID в нижнем регистре в формате v1–5.

При INVALID_CLOUD_CONTRACT проверьте синтаксис JSON и имена полей запроса. При UNSUPPORTED_CLOUD_CONTRACT установите schema в altifigence.dds.cloud-request.v1. Размер каждого документа должен быть не более 1402200 байт.

Первый запуск CLI