Compartir a través de


Comando update

Actualice una definición de entidad existente en el archivo de configuración del Generador de API de datos. Use este comando para ajustar los metadatos de origen, los permisos, la exposición (REST/GraphQL), las directivas, el almacenamiento en caché, las relaciones, las asignaciones y los metadatos descriptivos de una entidad existente.

Sugerencia

Use dab add para crear nuevas entidades y dab update para evolucionarlas. Para administrar los metadatos de campo, use --fields.name con --fields.alias, --fields.descriptiony --fields.primary-key.

Syntax

dab update <entity-name> [options]

Vista rápida

Opción Resumen
<entity-name> Argumento posicional requerido. Nombre de entidad lógica.
-s, --source Nombre de la tabla de origen, vista o procedimiento almacenado.
-m, --map Asignaciones entre campos de base de datos y nombres expuestos.
--permissions Rol y acciones en role:actions formato.
--description Reemplace la descripción de la entidad.
-c, --config Ruta de acceso al archivo de configuración. La resolución predeterminada se aplica si se omite.
--help Muestra la pantalla de ayuda.
--version Mostrar información de versión.

Cache

Opción Resumen
--cache.enabled Habilite o deshabilite el almacenamiento en caché de entidades.
--cache.ttl Tiempo de vida en caché en segundos.

Fields

Opción Resumen
--fields.exclude Lista separada por comas de campos excluidos.
--fields.include Lista separada por comas de campos incluidos (* = todos).

Metadatos de campos

Opción Resumen
--fields.name Nombre de la columna de base de datos que se va a describir.
--fields.alias Alias para el campo.
--fields.description Descripción del campo.
--fields.primary-key Establezca este campo como clave principal.

GraphQL

Opción Resumen
--graphql Exposición de GraphQL: false, true, singularo singular:plural.
--graphql.operation Solo procedimientos almacenados: query o mutation (mutación predeterminada).

Permisos y directivas

Opción Resumen
--permissions role:actions para un solo rol. Ejecute varias veces para varios roles.
--policy-database Filtro de estilo OData insertado en la consulta de base de datos.
--policy-request Filtro de solicitud de base de datos previa.

Relationships

Opción Resumen
--relationship Nombre de la relación. Use con las opciones de relación.
--cardinality Cardinalidad de la relación: one o many.
--target.entity Nombre de entidad de destino.
--linking.object Objeto de vinculación para varios a varios.
--linking.source.fields Vincular campos de objeto que apuntan al origen.
--linking.target.fields Vincular campos de objeto que apuntan al destino.
--relationship.fields Asignaciones de campos para relaciones directas.

REST

Opción Resumen
--rest Exposición de REST: false, trueo ruta de acceso personalizada.
--rest.methods Solo procedimientos almacenados. Reemplace los verbos HTTP permitidos.

Mapeos

Opción Resumen
-m, --map Asignaciones entre campos de base de datos y nombres expuestos.

MCP

Opción Resumen
--mcp.dml-tools Habilite o deshabilite las herramientas de MCP DML para esta entidad.
--mcp.custom-tool Habilite la herramienta personalizada MCP (solo procedimientos almacenados).

Fuente

Opción Resumen
-s, --source Nombre del objeto de base de datos subyacente.
--source.type Tipo de origen: table, viewo stored-procedure.
--source.params Valores de parámetro predeterminados para procedimientos almacenados.
--source.key-fields Campos de clave principal para vistas o tablas.

Parámetros (procedimientos almacenados)

Opción Resumen
--parameters.name Lista separada por comas de nombres de parámetros.
--parameters.description Lista separada por comas de descripciones de parámetros.
--parameters.required Lista separada por comas de marcas necesarias.
--parameters.default Lista separada por comas de valores predeterminados.

--cache.enabled

Habilite o deshabilite el almacenamiento en caché para esta entidad.

Example

dab update \
  Book \
  --cache.enabled true

Configuración resultante

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

Nota:

Cuando el almacenamiento en caché está habilitado (valor predeterminado), la CLI escribe un objeto vacío cache . La "enabled" propiedad solo aparece explícitamente cuando se establece en false.

--cache.ttl

Establezca el tiempo de vida de la memoria caché en segundos. Solo es efectivo si el almacenamiento en caché está habilitado.

Example

dab update \
  Book \
  --cache.ttl 600

Configuración resultante

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

Nota:

Proporcionar TTL (período de vida) cuando la memoria caché está deshabilitada no tiene ningún efecto hasta que se habilita el almacenamiento en caché.

--description

Reemplace la descripción de la entidad.

Nota:

Esta opción está disponible en la 2.0.0-rc CLI. Data API Builder 2.0 está actualmente en versión preliminar. Instale con dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

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

Configuración resultante

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

--fields.exclude

Lista separada por comas de campos que se van a excluir.

Example

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

Configuración resultante

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

--fields.include

Lista separada por comas de campos que se van a incluir. * incluye todos los campos. Reemplaza la lista de inclusión existente.

Example

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

Configuración resultante

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

--graphql

Controlar la exposición de GraphQL.

Example

dab update \
  Book \
  --graphql book:books

Configuración resultante

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

--graphql.operation

Solo procedimientos almacenados. Establece el tipo de operación. El valor predeterminado es mutation.

Example

dab update \
  RunReport \
  --graphql.operation query

Configuración resultante

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

Nota:

Se omite el suministro --graphql.operation de tablas o vistas.

--permissions

Agrega o actualiza permisos para un único rol y sus acciones.

Puede ejecutar dab update varias veces (una vez por rol) para agregar varios roles.

Example

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

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

Configuración resultante

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

Nota:

Si el rol especificado ya existe, se actualizan sus acciones; De lo contrario, se agrega el rol.

--policy-database

Filtro de estilo OData anexado a la consulta de base de datos.

Example

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

Configuración resultante

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

--policy-request

Directiva de nivel de solicitud evaluada antes de alcanzar la base de datos.

Example

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

Configuración resultante

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

--relationship

Defina o actualice una relación. Use con otras opciones de relación.

Example

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

Configuración resultante

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

--cardinality

Cardinalidad de la relación. Se usa con --relationship.

Example

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

--target.entity

Nombre de entidad de destino para la relación. Se usa con --relationship.

Example

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

--linking.object

Solo varios a varios. Nombre del objeto de base de datos que se va a usar como objeto de vinculación.

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

Solo varios a varios. Lista separada por comas de campos de objeto de vinculación que apuntan a la entidad de origen.

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

Solo varios a varios. Lista separada por comas de campos de objeto de vinculación que apuntan a la entidad de destino.

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

Asignaciones de campos separados por dos puntos para relaciones directas.

El --relationship.fields valor es una lista separada por comas de sourceField:targetField pares.

Example

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

Configuración resultante

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

--rest

Controlar la exposición de REST.

Example

dab update \
  Book \
  --rest BooksApi

Configuración resultante

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

--rest.methods

Solo procedimientos almacenados. Reemplace los métodos HTTP permitidos. El valor predeterminado es POST.

Example

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

Configuración resultante

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

Nota:

Proporcionar --rest.methods mientras REST está deshabilitado no tiene ningún efecto.

-s, --source

Actualice el objeto de base de datos subyacente.

Example

dab update \
  Book \
  --source dbo.Books

Configuración resultante

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

--source.type

Cambie el tipo de objeto de origen.

Nota:

Las vistas requieren --source.key-fields. Cambiar a view sin especificar los campos clave produce un error.

Example

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

Configuración resultante

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

--source.params

Solo procedimientos almacenados. Valores de parámetro predeterminados como name:value pares.

Example

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

Configuración 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 los campos de clave principal para las vistas o tablas sin una clave inferida.

Example

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

Configuración resultante

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

Nota:

Las vistas siempre requieren campos clave. La --source.key-fields opción agrega entradas a la fields matriz con "primary-key": true.

-m, --map

Especifique asignaciones entre los nombres de columna de base de datos y los nombres de campo REST/GraphQL expuestos.

Example

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

Configuración resultante

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

Nota:

La --map opción crea entradas en la fields matriz con el conjunto de alias propiedades.

--parameters.name

Solo procedimientos almacenados. Lista separada por comas de nombres de parámetros.

Nota:

Esta opción está disponible en la 2.0.0-rc CLI. Data API Builder 2.0 está actualmente en versión preliminar. Instale con dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Sugerencia

Para definir parámetros de procedimiento almacenado, use --parameters.name con --parameters.description, --parameters.requiredy --parameters.default.

Example

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

Configuración 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

Solo procedimientos almacenados. Lista separada por comas de descripciones de parámetros alineadas con --parameters.name.

Nota:

Esta opción está disponible en la 2.0.0-rc CLI. Data API Builder 2.0 está actualmente en versión preliminar. Instale con 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

Solo procedimientos almacenados. Lista separada por comas de true/false valores alineados con .--parameters.name

Nota:

Esta opción está disponible en la 2.0.0-rc CLI. Data API Builder 2.0 está actualmente en versión preliminar. Instale con 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

Solo procedimientos almacenados. Lista separada por comas de valores predeterminados alineados con --parameters.name.

Nota:

Esta opción está disponible en la 2.0.0-rc CLI. Data API Builder 2.0 está actualmente en versión preliminar. Instale con dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

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

--fields.name

Nombre de la columna de base de datos que se va a describir.

Nota:

Esta opción está disponible en la 2.0.0-rc CLI. Data API Builder 2.0 está actualmente en versión preliminar. Instale con 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"

Configuración resultante

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

--fields.alias

Alias para el campo. Use una lista separada por comas alineada con --fields.name.

Nota:

Esta opción está disponible en la 2.0.0-rc CLI. Data API Builder 2.0 está actualmente en versión preliminar. Instale con dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Sugerencia

Use --fields.alias con --fields.name para definir nombres de campo expuestos.

Example

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

--fields.description

Descripción del campo. Use una lista separada por comas alineada con --fields.name.

Nota:

Esta opción está disponible en la 2.0.0-rc CLI. Data API Builder 2.0 está actualmente en versión preliminar. Instale con 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

Marca de clave principal para el campo. Use una lista separada por comas de true/false valores alineados con .--fields.name

Nota:

Esta opción está disponible en la 2.0.0-rc CLI. Data API Builder 2.0 está actualmente en versión preliminar. Instale con dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Sugerencia

Use --fields.primary-key con --fields.name para definir campos de clave principal para vistas o tablas sin una clave inferida.

Example

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

Configuración resultante

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

--mcp.dml-tools

Habilite o deshabilite las herramientas de MCP DML (lenguaje de manipulación de datos) para esta entidad. El valor predeterminado es true.

Nota:

Esta opción está disponible en la 2.0.0-rc CLI. Data API Builder 2.0 está actualmente en versión preliminar. Instale con dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

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

Configuración resultante

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

Nota:

Cuando --mcp.dml-tools se usa, establezca mcp mediante el formulario de objeto para que la configuración sea explícita.

--mcp.custom-tool

Solo procedimientos almacenados. Habilite la herramienta personalizada de MCP para esta entidad. El valor predeterminado es false.

Nota:

Esta opción está disponible en la 2.0.0-rc CLI. Data API Builder 2.0 está actualmente en versión preliminar. Instale con dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

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

Configuración resultante

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

-c, --config

Ruta de acceso al archivo de configuración.

Example

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

--help

Muestra la pantalla de ayuda.

Example

dab update --help

--version

Mostrar información de versión.

Example

dab update --version

Importante

Cambiar el tipo de origen puede invalidar otras propiedades. Por ejemplo, las vistas siempre requieren campos clave; los procedimientos almacenados no pueden definir campos clave.