Validar una solicitud Cloud tipada

Compruebe localmente una solicitud de proyecto, miembro, fuente o espacio de trabajo e inspeccione su vista previa tipada con Altifigence CLI.

Utilice Altifigence CLI 0.1.9 en Linux para validar un documento de solicitud tipada y revisar su método, ruta, cabeceras y cuerpo.

Preparar la solicitud

Guarde este ejemplo 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 y projectId. Para project-list y project-create, incluya orgId. Para project-get, project-update, project-delete y todas las acciones de miembro, fuente y espacio de trabajo, incluya tanto orgId como projectId. Utilice UUID en minúsculas en el formato v1–5.

Para member-add, member-update y member-remove, añada el userId del miembro a action. member-add y member-update también requieren role: owner, editor o viewer. Para una acción de espacio de trabajo, coloque la operación del espacio de trabajo dentro de action.request.

Validar e inspeccionar la vista previa

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

El estado de salida 0 indica un contrato válido. El ejemplo produce 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 y request.body. El comprobante registra la validación local con status: "contract-only", executed: false y authorizationChecked: false.

Para leer el mismo documento desde la entrada estándar, utilice:

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

Corregir una solicitud rechazada

Un nombre de proyecto vacío produce este resultado con el estado de salida 2:

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

Cambie el nombre por un valor no vacío, como Counter, guarde el documento y ejecute de nuevo el comando de validación.

Para CLOUD_IDENTITY_SCOPE_MISMATCH, ajuste orgId y projectId a la acción. Por ejemplo, elimine projectId de una solicitud project-create y vuelva a validar. Para INVALID_CLOUD_IDENTITY, proporcione un UUID en minúsculas en el formato v1–5.

Para INVALID_CLOUD_CONTRACT, compruebe la sintaxis JSON y los nombres de los campos de la solicitud. Para UNSUPPORTED_CLOUD_CONTRACT, establezca schema en altifigence.dds.cloud-request.v1. Mantenga cada documento dentro de 1402200 bytes.

Primer resultado con la CLI