Validate Schema Compatibility

Validar compatibilidade de schema entre tabela e dataset

Validate Schema Compatibility

Valida se o schema de um dataset é compatível com o schema de uma tabela antes de vincular.

Endpoint

POST /storage-explorer/tables/{tableId}/validate-compatibility/{datasetId}

Permissões Requeridas

  • STORAGE_EXPLORER.READ

Path Parameters

ParâmetroTipoDescrição
tableIdstringID da tabela
datasetIdstringID do dataset

Exemplo de Requisição

curl -X POST "https://maestro.dadosfera.ai/storage-explorer/tables/tbl_a1b2c3d4e5f6/validate-compatibility/ds_x1y2z3" \
  -H "Authorization: <JWT_TOKEN>"

Exemplo de Resposta

Compatible (200 OK):

{
  "compatible": true,
  "table_id": "tbl_a1b2c3d4e5f6",
  "dataset_id": "ds_x1y2z3",
  "validation_details": {
    "column_count_match": true,
    "all_columns_present": true,
    "type_compatibility": true,
    "warnings": [
      "Column 'total_amount' in dataset has more decimal places than table allows"
    ]
  },
  "column_mapping": [
    {
      "table_column": "order_id",
      "dataset_column": "order_id",
      "table_type": "VARCHAR(50)",
      "dataset_type": "TEXT",
      "compatible": true
    },
    {
      "table_column": "customer_id",
      "dataset_column": "customer_id",
      "table_type": "VARCHAR(50)",
      "dataset_type": "TEXT",
      "compatible": true
    },
    {
      "table_column": "order_date",
      "dataset_column": "order_date",
      "table_type": "TIMESTAMP",
      "dataset_type": "TIMESTAMP",
      "compatible": true
    },
    {
      "table_column": "total_amount",
      "dataset_column": "total_amount",
      "table_type": "DECIMAL(10,2)",
      "dataset_type": "DECIMAL(12,4)",
      "compatible": true,
      "warning": "Precision may be truncated"
    }
  ]
}

Incompatible (200 OK):

{
  "compatible": false,
  "table_id": "tbl_a1b2c3d4e5f6",
  "dataset_id": "ds_x1y2z3",
  "validation_details": {
    "column_count_match": false,
    "all_columns_present": false,
    "type_compatibility": false,
    "errors": [
      "Missing required column: customer_id",
      "Type mismatch on column: order_date"
    ]
  },
  "missing_columns": ["customer_id"],
  "extra_columns": ["client_id"],
  "type_mismatches": [
    {
      "column": "order_date",
      "table_type": "TIMESTAMP",
      "dataset_type": "VARCHAR",
      "compatible": false,
      "reason": "Cannot convert VARCHAR to TIMESTAMP automatically"
    }
  ]
}

Response Fields

CampoTipoDescrição
compatiblebooleanSe o dataset é compatível com a tabela
validation_detailsobjectDetalhes da validação
column_mappingarrayMapeamento de colunas
missing_columnsarrayColunas faltantes no dataset
extra_columnsarrayColunas extras no dataset
type_mismatchesarrayIncompatibilidades de tipo

Códigos de Status

CódigoDescrição
200Validação realizada (compatível ou não)
401Não autenticado
403Sem permissão STORAGE_EXPLORER.READ
404Tabela ou dataset não encontrado