Validar uma solicitação tipada do Cloud

Verifique localmente uma solicitação de projeto, membro, origem ou workspace e inspecione a prévia da solicitação tipada com o Altifigence CLI.

Use o Altifigence CLI 0.1.9 no Linux para validar um documento de solicitação tipada e revisar seu método, caminho, cabeçalhos e corpo.

Preparar a solicitação

Salve este exemplo como request.json:

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

Para organizations, omita orgId e projectId. Para project-list e project-create, inclua orgId. Para project-get, project-update, project-delete e todas as ações de membros, origem e workspace, inclua orgId e projectId. Use UUIDs em letras minúsculas no formato v1–5.

Para member-add, member-update e member-remove, adicione o userId do membro a action. member-add e member-update também exigem role: owner, editor ou viewer. Para uma ação de workspace, coloque a operação do workspace em action.request.

Validar e inspecionar a prévia

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

O status de saída 0 informa um contrato válido. O exemplo produz este resultado 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"
    }
  }
}

Revise request.method, request.path e request.body. O comprovante registra a validação local com status: "contract-only", executed: false e authorizationChecked: false.

Para ler o mesmo documento pela entrada padrão, use:

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

Corrigir uma solicitação rejeitada

Um nome de projeto vazio produz este resultado com status de saída 2:

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

Altere o nome para um valor não vazio, como Counter, salve o documento e execute novamente o comando de validação.

Para CLOUD_IDENTITY_SCOPE_MISMATCH, ajuste orgId e projectId à ação. Por exemplo, remova projectId de uma solicitação project-create e valide novamente. Para INVALID_CLOUD_IDENTITY, forneça um UUID em letras minúsculas no formato v1–5.

Para INVALID_CLOUD_CONTRACT, verifique a sintaxe JSON e os nomes dos campos da solicitação. Para UNSUPPORTED_CLOUD_CONTRACT, defina schema como altifigence.dds.cloud-request.v1. Mantenha cada documento em até 1402200 bytes.

Primeiro uso da CLI