Commande update

Mettez à jour une définition d’entité existante dans le fichier de configuration du générateur d’API de données. Utilisez cette commande pour ajuster les métadonnées sources, les autorisations, l’exposition (REST/GraphQL), les stratégies, la mise en cache, les relations, les mappages et les métadonnées descriptives pour une entité existante.

Conseil / Astuce

Permet dab add de créer de nouvelles entités et dab update de les faire évoluer. Pour gérer les métadonnées de champ, utilisez --fields.name avec --fields.alias, --fields.descriptionet --fields.primary-key.

Syntaxe

dab update <entity-name> [options]

Aperçu rapide

Choix Résumé
<entity-name> Argument positionnel obligatoire. Nom de l’entité logique.
-s, --source Nom de la table source, de la vue ou de la procédure stockée.
-m, --map Mappages entre les champs de base de données et les noms exposés.
--permissions Rôle et actions au role:actions format.
--description Remplacez la description de l’entité.
-c, --config Chemin d’accès au fichier de configuration. La résolution par défaut s’applique si elle est omise.
--help Affichez l’écran d’aide.
--version Affichez les informations de version.

Cache

Choix Résumé
--cache.enabled Activez ou désactivez la mise en cache d’entité.
--cache.ttl Durée de vie du cache en secondes.

Fields

Choix Résumé
--fields.exclude Liste séparée par des virgules de champs exclus.
--fields.include Liste séparée par des virgules des champs inclus (* = all).

Métadonnées de champs

Choix Résumé
--fields.name Nom de la colonne de base de données à décrire.
--fields.alias Alias du champ.
--fields.description Description du champ.
--fields.primary-key Définissez ce champ comme clé primaire.

GraphQL

Choix Résumé
--graphql Exposition GraphQL : false, , truesingularou singular:plural.
--graphql.operation Procédures stockées uniquement : query ou mutation (mutation par défaut).

Autorisations et stratégies

Choix Résumé
--permissions role:actions pour un seul rôle. Exécutez plusieurs fois pour plusieurs rôles.
--policy-database Filtre de style OData injecté dans la requête de base de données.
--policy-request Filtre de requête Predatabase.

Relations interpersonnelles

Choix Résumé
--relationship Nom de la relation. Utiliser avec les options de relation.
--cardinality Cardinalité de relation : one ou many.
--target.entity Nom de l’entité cible.
--linking.object Objet de liaison pour plusieurs-à-plusieurs.
--linking.source.fields Liaison de champs d’objet pointant vers la source.
--linking.target.fields Liaison de champs d’objet pointant vers la cible.
--relationship.fields Mappages de champs pour les relations directes.

REST

Choix Résumé
--rest Exposition REST : false, trueou chemin personnalisé.
--rest.methods Procédures stockées uniquement. Remplacez les verbes HTTP autorisés.

Correspondances

Choix Résumé
-m, --map Mappages entre les champs de base de données et les noms exposés.

MCP

Choix Résumé
--mcp.dml-tools Activez ou désactivez les outils DML MCP pour cette entité.
--mcp.custom-tool Activez l’outil personnalisé MCP (procédures stockées uniquement).

Origine

Choix Résumé
-s, --source Nom de l’objet de base de données sous-jacent.
--source.type Type de source : table, viewou stored-procedure.
--source.params Valeurs de paramètre par défaut pour les procédures stockées.
--source.key-fields Champ(s) de clé primaire pour les vues ou les tables.

Paramètres (procédures stockées)

Choix Résumé
--parameters.name Liste séparée par des virgules des noms de paramètres.
--parameters.description Liste séparée par des virgules des descriptions de paramètres.
--parameters.required Liste séparée par des virgules des indicateurs requis.
--parameters.default Liste séparée par des virgules des valeurs par défaut.

--cache.enabled

Activez ou désactivez la mise en cache pour cette entité.

Example

dab update \
  Book \
  --cache.enabled true

Configuration résultante

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

Note

Lorsque la mise en cache est activée (valeur par défaut), l’interface CLI écrit un objet vide cache . La "enabled" propriété apparaît uniquement explicitement lorsqu’elle est définie sur false.

--cache.ttl

Définissez la durée de vie du cache en secondes. Effective uniquement si la mise en cache est activée.

Example

dab update \
  Book \
  --cache.ttl 600

Configuration résultante

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

Note

Fournir la durée de vie (durée de vie) lorsque le cache est désactivé n’a aucun effet tant que la mise en cache n’est pas activée.

--description

Remplacez la description de l’entité.

Note

Cette option est disponible dans l’interface CLI de préversion du Générateur d’API de données 2.0. Installez la dernière préversion avec dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

Configuration résultante

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

--fields.exclude

Liste séparée par des virgules des champs à exclure.

Example

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

Configuration résultante

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

--fields.include

Liste de champs séparés par des virgules à inclure. * inclut tous les champs. Remplace la liste include existante.

Example

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

Configuration résultante

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

--graphql

Contrôler l’exposition GraphQL.

Example

dab update \
  Book \
  --graphql book:books

Configuration résultante

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

--graphql.operation

Procédures stockées uniquement. Définit le type d’opération. La valeur par défaut est mutation.

Example

dab update \
  RunReport \
  --graphql.operation query

Configuration résultante

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

Note

La fourniture de --graphql.operation tables ou de vues est ignorée.

--permissions

Ajoute ou met à jour des autorisations pour un rôle unique et ses actions.

Vous pouvez exécuter dab update plusieurs fois (une fois par rôle) pour ajouter plusieurs rôles.

Example

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

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

Configuration résultante

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

Note

Si le rôle spécifié existe déjà, ses actions sont mises à jour ; sinon, le rôle est ajouté.

--policy-database

Filtre de style OData ajouté à la requête de base de données.

Example

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

Configuration résultante

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

--policy-request

Stratégie au niveau de la requête évaluée avant d’atteindre la base de données.

Example

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

Configuration résultante

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

--relationship

Définissez ou mettez à jour une relation. Utiliser avec d’autres options de relation.

Example

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

Configuration résultante

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

--cardinality

Cardinalité pour la relation. Utiliser avec --relationship.

Example

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

--target.entity

Nom de l’entité cible pour la relation. Utiliser avec --relationship.

Example

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

--linking.object

Plusieurs-à-plusieurs uniquement. Nom de l’objet de base de données à utiliser comme objet de liaison.

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

Plusieurs-à-plusieurs uniquement. Liste séparée par des virgules de liaison de champs d’objet pointant vers l’entité source.

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

Plusieurs-à-plusieurs uniquement. Liste séparée par des virgules de liaison de champs d’objet pointant vers l’entité cible.

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

Mappages de champs séparés par des points pour les relations directes.

La --relationship.fields valeur est une liste séparée par des virgules de sourceField:targetField paires.

Example

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

Configuration résultante

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

--rest

Contrôler l’exposition REST.

Example

dab update \
  Book \
  --rest BooksApi

Configuration résultante

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

--rest.methods

Procédures stockées uniquement. Remplacez les méthodes HTTP autorisées. La valeur par défaut est POST.

Example

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

Configuration résultante

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

Note

L’approvisionnement --rest.methods pendant que REST est désactivé n’a aucun effet.

-s, --source

Mettez à jour l’objet de base de données sous-jacent.

Example

dab update \
  Book \
  --source dbo.Books

Configuration résultante

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

--source.type

Modifiez le type d’objet source.

Note

Les vues nécessitent --source.key-fields. La modification sans view spécifier de champs clés génère une erreur.

Example

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

Configuration résultante

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

--source.params

Procédures stockées uniquement. Valeurs de paramètre par défaut en tant que name:value paires.

Example

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

Configuration résultante

{
  "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

Spécifiez les champs de clé primaire pour les vues ou les tables sans clé déduite.

Example

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

Configuration résultante

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

Note

Les vues nécessitent toujours des champs clés. L’option --source.key-fields ajoute des entrées au fields tableau avec "primary-key": true.

-m, --map

Spécifiez des mappages entre les noms de colonnes de base de données et les noms de champs REST/GraphQL exposés.

Example

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

Configuration résultante

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

Note

L’option --map crée des entrées dans le fields tableau avec le jeu de alias propriétés.

--parameters.name

Procédures stockées uniquement. Liste séparée par des virgules des noms de paramètres.

Note

Cette option est disponible dans l’interface CLI de préversion du Générateur d’API de données 2.0. Installez la dernière préversion avec dotnet tool install microsoft.dataapibuilder --prerelease.

Conseil / Astuce

Pour définir des paramètres de procédure stockée, utilisez --parameters.name avec --parameters.description, --parameters.requiredet --parameters.default.

Example

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

Configuration résultante

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

--parameters.description

Procédures stockées uniquement. Liste séparée par des virgules des descriptions de paramètres alignées sur --parameters.name.

Note

Cette option est disponible dans l’interface CLI de préversion du Générateur d’API de données 2.0. Installez la dernière préversion avec dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

--parameters.required

Procédures stockées uniquement. Liste séparée par des virgules des true/false valeurs alignées sur --parameters.name.

Note

Cette option est disponible dans l’interface CLI de préversion du Générateur d’API de données 2.0. Installez la dernière préversion avec dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

--parameters.default

Procédures stockées uniquement. Liste séparée par des virgules des valeurs par défaut alignées sur --parameters.name.

Note

Cette option est disponible dans l’interface CLI de préversion du Générateur d’API de données 2.0. Installez la dernière préversion avec dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

--fields.name

Nom de la colonne de base de données à décrire.

Note

Cette option est disponible dans l’interface CLI de préversion du Générateur d’API de données 2.0. Installez la dernière préversion avec dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

Configuration résultante

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

--fields.alias

Alias du champ. Utilisez une liste séparée par des virgules alignée sur --fields.name.

Note

Cette option est disponible dans l’interface CLI de préversion du Générateur d’API de données 2.0. Installez la dernière préversion avec dotnet tool install microsoft.dataapibuilder --prerelease.

Conseil / Astuce

Utilisez-la --fields.alias--fields.name pour définir des noms de champs exposés.

Example

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

--fields.description

Description du champ. Utilisez une liste séparée par des virgules alignée sur --fields.name.

Note

Cette option est disponible dans l’interface CLI de préversion du Générateur d’API de données 2.0. Installez la dernière préversion avec dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

--fields.primary-key

Indicateur de clé primaire pour le champ. Utilisez une liste séparée par des virgules de true/false valeurs alignées sur --fields.name.

Note

Cette option est disponible dans l’interface CLI de préversion du Générateur d’API de données 2.0. Installez la dernière préversion avec dotnet tool install microsoft.dataapibuilder --prerelease.

Conseil / Astuce

Utilisez cette --fields.primary-key option --fields.name pour définir des champs de clé primaire pour les vues ou les tables sans clé déduite.

Example

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

Configuration résultante

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

--mcp.dml-tools

Activez ou désactivez les outils MCP DML (langage de manipulation des données) pour cette entité. La valeur par défaut est true.

Note

Cette option est disponible dans l’interface CLI de préversion du Générateur d’API de données 2.0. Installez la dernière préversion avec dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

Configuration résultante

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

Note

Quand --mcp.dml-tools elle est utilisée, définissez mcp à l’aide d’un formulaire objet afin que la configuration soit explicite.

--mcp.custom-tool

Procédures stockées uniquement. Activez l’outil personnalisé MCP pour cette entité. La valeur par défaut est false.

Note

Cette option est disponible dans l’interface CLI de préversion du Générateur d’API de données 2.0. Installez la dernière préversion avec dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

Configuration résultante

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

-c, --config

Chemin d’accès au fichier de configuration.

Example

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

--help

Affichez l’écran d’aide.

Example

dab update --help

--version

Affichez les informations de version.

Example

dab update --version

Important

La modification du type de source peut invalider d’autres propriétés. Par exemple, les vues nécessitent toujours des champs clés ; les procédures stockées ne peuvent pas définir de champs clés.