Partilhar via


update comando

Atualize uma definição de entidade existente no arquivo de configuração do construtor de API de dados. Use este comando para ajustar metadados de origem, permissões, exposição (REST/GraphQL), políticas, cache, relações, mapeamentos e metadados descritivos para uma entidade existente.

Sugestão

Use dab add para criar novas entidades e dab update para evolui-las. Para gerir metadados de campo, use --fields.name com --fields.alias, --fields.description, e --fields.primary-key.

Sintaxe

dab update <entity-name> [options]

Visão rápida

Opção Resumo
<entity-name> Argumento posicional necessário. Nome lógico da entidade.
-s, --source Nome da tabela de origem, vista ou procedimento armazenado.
-m, --map Mapeamentos entre campos da base de dados e nomes expostos.
--permissions Papel e ações no role:actions formato.
--description Substitua a descrição da entidade.
-c, --config Caminho para o arquivo de configuração. A resolução padrão aplica-se se omitida.
--help Mostra o ecrã de ajuda.
--version Mostrar a informação da versão.

Cache

Opção Resumo
--cache.enabled Habilite ou desabilite o cache de entidade.
--cache.ttl Cache time-to-live em segundos.

Campos

Opção Resumo
--fields.exclude Lista de campos excluídos separados por vírgula.
--fields.include Lista separada por vírgulas dos campos incluídos (* = todos).

Metadados dos campos

Opção Resumo
--fields.name Nome da coluna da base de dados a descrever.
--fields.alias Pseudónimo para o campo.
--fields.description Descrição do campo.
--fields.primary-key Defina este campo como chave primária.

GraphQL

Opção Resumo
--graphql Exposição ao GraphQL: false, true, singular, ou singular:plural.
--graphql.operation Somente procedimentos armazenados: query ou mutation (mutação padrão).

Permissões e Políticas

Opção Resumo
--permissions role:actions para um único papel. Candidate-se várias vezes para várias funções.
--policy-database Filtro ao estilo OData injetado numa consulta de base de dados.
--policy-request Filtro de pedidos pré-base de dados.

Relações

Opção Resumo
--relationship Nome do relacionamento. Use com opções de relacionamento.
--cardinality Cardinalidade da relação: one ou many.
--target.entity Nome da entidade-alvo.
--linking.object Objeto de ligação para muitos-para-muitos.
--linking.source.fields Ligar campos de objeto que apontam para a origem.
--linking.target.fields A ligar campos de objetos que apontam para o alvo.
--relationship.fields Mapeamentos de campo para relações diretas.

REST

Opção Resumo
--rest Exposição REST: false, true, ou caminho personalizado.
--rest.methods Somente procedimentos armazenados. Substitua verbos HTTP permitidos.

Mapeamentos

Opção Resumo
-m, --map Mapeamentos entre campos da base de dados e nomes expostos.

MCP

Opção Resumo
--mcp.dml-tools Ative ou desative as ferramentas MCP DML para esta entidade.
--mcp.custom-tool Ativar a ferramenta personalizada MCP (apenas procedimentos armazenados).

Fonte

Opção Resumo
-s, --source Nome do objeto de banco de dados subjacente.
--source.type Tipo de fonte: table, view, ou stored-procedure.
--source.params Valores de parâmetros padrão para procedimentos armazenados.
--source.key-fields Campo(s) de chaves primárias para vistas ou tabelas.

Parâmetros (procedimentos armazenados)

Opção Resumo
--parameters.name Lista separada por vírgulas dos nomes dos parâmetros.
--parameters.description Lista separada por vírgulas de descrições de parâmetros.
--parameters.required Lista separada por vírgulas das bandeiras obrigatórias.
--parameters.default Lista separada por vírgulas de valores padrão.

--cache.enabled

Habilite ou desabilite o cache para esta entidade.

Example

dab update \
  Book \
  --cache.enabled true

Configuração resultante

{
  "entities": {
    "Book": {
      "cache": {}
    }
  }
}

Observação

Quando a cache está ativada (o padrão), a CLI escreve um objeto vazio cache . A "enabled" propriedade só aparece explicitamente quando definida como false.

--cache.ttl

Defina o tempo de vida do cache em segundos. Só é eficaz se o cache estiver habilitado.

Example

dab update \
  Book \
  --cache.ttl 600

Configuração resultante

{
  "entities": {
    "Book": {
      "cache": {
        "ttl-seconds": 600
      }
    }
  }
}

Observação

Fornecer TTL (time-to-live) quando a cache está desativada não tem efeito até que a cache esteja ativada.

--description

Substitua a descrição da entidade.

Observação

Esta opção está disponível na 2.0.0-rc CLI. O Data API Builder 2.0 está atualmente em pré-visualização. Instale com dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

dab update \
  Book \
  --description "Updated description"

Configuração resultante

{
  "entities": {
    "Book": {
      "description": "Updated description"
    }
  }
}

--fields.exclude

Lista separada por vírgulas de campos a excluir.

Example

dab update \
  Book \
  --permissions "anonymous:read" \
  --fields.exclude "internal_flag,secret_note"

Configuração resultante

{
  "entities": {
    "Book": {
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "fields": {
                "exclude": [ "internal_flag", "secret_note" ]
              }
            }
          ]
        }
      ]
    }
  }
}

--fields.include

Lista separada por vírgulas dos campos a incluir. * Inclui todos os campos. Substitui a lista de inclusão existente.

Example

dab update \
  Book \
  --permissions "anonymous:read" \
  --fields.include "id,title,author"

Configuração resultante

{
  "entities": {
    "Book": {
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "fields": {
                "exclude": [],
                "include": [ "id", "title", "author" ]
              }
            }
          ]
        }
      ]
    }
  }
}

--graphql

Controle a exposição ao GraphQL.

Example

dab update \
  Book \
  --graphql book:books

Configuração resultante

{
  "entities": {
    "Book": {
      "graphql": {
        "enabled": true,
        "type": {
          "singular": "book",
          "plural": "books"
        }
      }
    }
  }
}

--graphql.operation

Somente procedimentos armazenados. Define o tipo de operação. A predefinição é mutation.

Example

dab update \
  RunReport \
  --graphql.operation query

Configuração resultante

{
  "entities": {
    "RunReport": {
      "graphql": {
        "operation": "query"
      }
    }
  }
}

Observação

O fornecimento --graphql.operation de tabelas ou exibições é ignorado.

--permissions

Adiciona ou atualiza permissões para um único papel e as suas ações.

Podes correr dab update várias vezes (uma por função) para adicionar vários papéis.

Example

dab update \
  Book \
  --permissions "anonymous:read"

dab update \
  Book \
  --permissions "authenticated:create,read,update"

Configuração resultante

{
  "entities": {
    "Book": {
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read"
            }
          ]
        },
        {
          "role": "authenticated",
          "actions": [
            { "action": "create" },
            { "action": "read" },
            { "action": "update" }
          ]
        }
      ]
    }
  }
}

Observação

Se o papel especificado já existir, as suas ações são atualizadas; caso contrário, o papel é adicionado.

--policy-database

Filtro ao estilo OData adicionado à consulta à base de dados.

Example

dab update \
  Book \
  --permissions "anonymous:read" \
  --policy-database "region eq 'US'"

Configuração resultante

{
  "entities": {
    "Book": {
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "policy": {
                "database": "region eq 'US'"
              }
            }
          ]
        }
      ]
    }
  }
}

--policy-request

Política de nível de solicitação avaliada antes de acessar o banco de dados.

Example

dab update \
  Book \
  --permissions "anonymous:read" \
  --policy-request "@claims.role == 'admin'"

Configuração resultante

{
  "entities": {
    "Book": {
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "policy": {
                "request": "@claims.role == 'admin'"
              }
            }
          ]
        }
      ]
    }
  }
}

--relationship

Definir ou atualizar uma relação. Use com outras opções de relacionamento.

Example

dab update \
  User \
  --relationship profile \
  --target.entity Profile \
  --cardinality one \
  --relationship.fields "id:user_id"

Configuração resultante

{
  "entities": {
    "User": {
      "relationships": {
        "profile": {
          "cardinality": "one",
          "target.entity": "Profile",
          "source.fields": [ "id" ],
          "target.fields": [ "user_id" ],
          "linking.source.fields": [],
          "linking.target.fields": []
        }
      }
    }
  }
}

--cardinality

Cardinalidade para a relação. Utilizar com --relationship.

Example

dab update \
  User \
  --relationship profile \
  --target.entity Profile \
  --cardinality one \
  --relationship.fields "id:user_id"

--target.entity

Nome da entidade-alvo para a relação. Utilizar com --relationship.

Example

dab update \
  User \
  --relationship profile \
  --target.entity Profile \
  --cardinality one \
  --relationship.fields "id:user_id"

--linking.object

Só muitos-para-muitos. Nome do objeto da base de dados a usar como objeto de ligação.

Example

dab update \
  Book \
  --relationship books_authors \
  --target.entity Author \
  --cardinality many \
  --relationship.fields "id:id" \
  --linking.object dbo.books_authors \
  --linking.source.fields book_id \
  --linking.target.fields author_id

--linking.source.fields

Só muitos-para-muitos. Lista separada por vírgulas dos campos de objetos ligados que apontam para a entidade de origem.

Example

dab update \
  Book \
  --relationship books_authors \
  --target.entity Author \
  --cardinality many \
  --relationship.fields "id:id" \
  --linking.object dbo.books_authors \
  --linking.source.fields book_id \
  --linking.target.fields author_id

--linking.target.fields

Só muitos-para-muitos. Lista separada por vírgulas de campos de objetos ligantes que apontam para a entidade-alvo.

Example

dab update \
  Book \
  --relationship books_authors \
  --target.entity Author \
  --cardinality many \
  --relationship.fields "id:id" \
  --linking.object dbo.books_authors \
  --linking.source.fields book_id \
  --linking.target.fields author_id

--relationship.fields

Mapeamentos de campo separados por dois pontos para relações diretas.

O --relationship.fields valor é uma lista separada por vírgulas de sourceField:targetField pares.

Example

dab update \
  User \
  --relationship profile \
  --target.entity Profile \
  --cardinality one \
  --relationship.fields "id:user_id"

Configuração resultante

{
  "entities": {
    "User": {
      "relationships": {
        "profile": {
          "cardinality": "one",
          "target.entity": "Profile",
          "source.fields": [ "id" ],
          "target.fields": [ "user_id" ],
          "linking.source.fields": [],
          "linking.target.fields": []
        }
      }
    }
  }
}

--rest

Controle a exposição REST.

Example

dab update \
  Book \
  --rest BooksApi

Configuração resultante

{
  "entities": {
    "Book": {
      "rest": {
        "enabled": true,
        "path": "/BooksApi"
      }
    }
  }
}

--rest.methods

Somente procedimentos armazenados. Substitua os métodos HTTP permitidos. O padrão é POST.

Example

dab update \
  RunReport \
  --rest true \
  --rest.methods GET,POST

Configuração resultante

{
  "entities": {
    "RunReport": {
      "rest": {
        "enabled": true,
        "methods": [ "get", "post" ]
      }
    }
  }
}

Observação

O fornecimento --rest.methods enquanto o REST está desativado não tem efeito.

-s, --source

Atualize o objeto de banco de dados subjacente.

Example

dab update \
  Book \
  --source dbo.Books

Configuração resultante

{
  "entities": {
    "Book": {
      "source": {
        "object": "dbo.Books",
        "type": "table"
      }
    }
  }
}

--source.type

Altere o tipo de objeto de origem.

Observação

As vistas requerem --source.key-fields. Mudar para view sem especificar os campos de chave produz um erro.

Example

dab update \
  Book \
  --source.type view \
  --source.key-fields "id"

Configuração resultante

{
  "entities": {
    "Book": {
      "source": {
        "type": "view",
        "object": "Book"
      },
      "fields": [
        {
          "name": "id",
          "primary-key": true
        }
      ]
    }
  }
}

--source.params

Somente procedimentos armazenados. Valores padrão dos parâmetros em name:value pares.

Example

dab update \
  RunReport \
  --source.params "startDate:2024-01-01,endDate:2024-12-31"

Configuração resultante

{
  "entities": {
    "RunReport": {
      "source": {
        "type": "stored-procedure",
        "parameters": [
          {
            "name": "startDate",
            "required": false,
            "default": "2024-01-01"
          },
          {
            "name": "endDate",
            "required": false,
            "default": "2024-12-31"
          }
        ]
      }
    }
  }
}

--source.key-fields

Especifique campo(s) de chave primária para vistas ou tabelas sem uma chave inferida.

Example

dab update \
  Book \
  --source.type view \
  --source.key-fields "id"

Configuração resultante

{
  "entities": {
    "Book": {
      "source": {
        "type": "view",
        "object": "Book"
      },
      "fields": [
        {
          "name": "id",
          "primary-key": true
        }
      ]
    }
  }
}

Observação

As vistas requerem sempre campos de chave. A --source.key-fields opção adiciona entradas ao fields array com "primary-key": true.

-m, --map

Especifique mapeamentos entre os nomes das colunas da base de dados e os nomes expostos dos campos REST/GraphQL.

Example

dab update \
  Book \
  --map "id:bookId,title:bookTitle"

Configuração resultante

{
  "entities": {
    "Book": {
      "fields": [
        {
          "name": "id",
          "alias": "bookId",
          "primary-key": false
        },
        {
          "name": "title",
          "alias": "bookTitle",
          "primary-key": false
        }
      ]
    }
  }
}

Observação

A --map opção cria entradas no fields array com a alias propriedade definida.

--parameters.name

Somente procedimentos armazenados. Lista separada por vírgulas dos nomes dos parâmetros.

Observação

Esta opção está disponível na 2.0.0-rc CLI. O Data API Builder 2.0 está atualmente em pré-visualização. Instale com dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Sugestão

Para definir parâmetros de procedimento armazenado, use --parameters.name com --parameters.description, --parameters.required, e --parameters.default.

Example

dab update \
  GetOrdersByDateRange \
  --parameters.name "StartDate,EndDate" \
  --parameters.required "true,true" \
  --parameters.description "Beginning of date range,End of date range"

Configuração resultante

{
  "entities": {
    "GetOrdersByDateRange": {
      "source": {
        "parameters": [
          {
            "name": "StartDate",
            "description": "Beginning of date range",
            "required": true
          },
          {
            "name": "EndDate",
            "description": "End of date range",
            "required": true
          }
        ]
      }
    }
  }
}

--parameters.description

Somente procedimentos armazenados. Lista separada por vírgulas de descrições de parâmetros alinhadas a --parameters.name.

Observação

Esta opção está disponível na 2.0.0-rc CLI. O Data API Builder 2.0 está atualmente em pré-visualização. Instale com dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

dab update \
  GetOrdersByDateRange \
  --parameters.name "StartDate,EndDate" \
  --parameters.description "Beginning of date range,End of date range"

--parameters.required

Somente procedimentos armazenados. Lista separada por vírgulas de true/false valores alinhados a .--parameters.name

Observação

Esta opção está disponível na 2.0.0-rc CLI. O Data API Builder 2.0 está atualmente em pré-visualização. Instale com dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

dab update \
  GetOrdersByDateRange \
  --parameters.name "StartDate,EndDate" \
  --parameters.required "true,true"

--parameters.default

Somente procedimentos armazenados. Lista separada por vírgulas de valores padrão alinhados a --parameters.name.

Observação

Esta opção está disponível na 2.0.0-rc CLI. O Data API Builder 2.0 está atualmente em pré-visualização. Instale com dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

dab update \
  GetOrdersByDateRange \
  --parameters.name "CustomerID" \
  --parameters.default "null"

--fields.name

Nome da coluna da base de dados a descrever.

Observação

Esta opção está disponível na 2.0.0-rc CLI. O Data API Builder 2.0 está atualmente em pré-visualização. Instale com dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

dab update \
  Products \
  --fields.name Id \
  --fields.primary-key true \
  --fields.description "Product Id"

Configuração resultante

{
  "entities": {
    "Products": {
      "fields": [
        {
          "name": "Id",
          "description": "Product Id",
          "primary-key": true
        }
      ]
    }
  }
}

--fields.alias

Pseudónimo para o campo. Use uma lista separada por vírgulas alinhada a --fields.name.

Observação

Esta opção está disponível na 2.0.0-rc CLI. O Data API Builder 2.0 está atualmente em pré-visualização. Instale com dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Sugestão

Use --fields.alias com --fields.name para definir nomes de campos expostos.

Example

dab update \
  Products \
  --fields.name "Id,Title" \
  --fields.alias "product_id,product_title"

--fields.description

Descrição do campo. Use uma lista separada por vírgulas alinhada a --fields.name.

Observação

Esta opção está disponível na 2.0.0-rc CLI. O Data API Builder 2.0 está atualmente em pré-visualização. Instale com dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

dab update \
  Products \
  --fields.name Id \
  --fields.description "Product Id"

--fields.primary-key

Bandeira principal para o campo. Use uma lista separada por vírgulas de true/false valores alinhados a .--fields.name

Observação

Esta opção está disponível na 2.0.0-rc CLI. O Data API Builder 2.0 está atualmente em pré-visualização. Instale com dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Sugestão

Use --fields.primary-key com --fields.name para definir campos de chave primária para vistas ou tabelas sem uma chave inferida.

Example

dab update \
  SalesSummary \
  --fields.name "year,region" \
  --fields.primary-key "true,true"

Configuração resultante

{
  "entities": {
    "SalesSummary": {
      "fields": [
        {
          "name": "year",
          "primary-key": true
        },
        {
          "name": "region",
          "primary-key": true
        }
      ]
    }
  }
}

--mcp.dml-tools

Ative ou desative as ferramentas MCP DML (linguagem de manipulação de dados) para esta entidade. A predefinição é true.

Observação

Esta opção está disponível na 2.0.0-rc CLI. O Data API Builder 2.0 está atualmente em pré-visualização. Instale com dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

dab update \
  Book \
  --mcp.dml-tools false

Configuração resultante

{
  "entities": {
    "Book": {
      "mcp": {
        "dml-tools": false
      }
    }
  }
}

Observação

Quando --mcp.dml-tools é usado, define mcp usando a forma objeto para que a configuração seja explícita.

--mcp.custom-tool

Somente procedimentos armazenados. Ative a ferramenta personalizada MCP para esta entidade. A predefinição é false.

Observação

Esta opção está disponível na 2.0.0-rc CLI. O Data API Builder 2.0 está atualmente em pré-visualização. Instale com dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

dab update \
  RunReport \
  --mcp.custom-tool true

Configuração resultante

{
  "entities": {
    "RunReport": {
      "mcp": {
        "custom-tool": true
      }
    }
  }
}

-c, --config

Caminho para o arquivo de configuração.

Example

dab update \
  Book \
  --description "Updated description" \
  --config dab-config.json

--help

Mostra o ecrã de ajuda.

Example

dab update --help

--version

Mostrar a informação da versão.

Example

dab update --version

Importante

Alterar o tipo de origem pode invalidar outras propriedades. Por exemplo, as vistas requerem sempre campos-chave; Os procedimentos armazenados não podem definir campos-chave.