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 2.0.0-rc CLI. Data API Builder 2.0 est actuellement en préversion. Installer avec dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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 2.0.0-rc CLI. Data API Builder 2.0 est actuellement en préversion. Installer avec dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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 2.0.0-rc CLI. Data API Builder 2.0 est actuellement en préversion. Installer avec 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

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 2.0.0-rc CLI. Data API Builder 2.0 est actuellement en préversion. Installer avec 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

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 2.0.0-rc CLI. Data API Builder 2.0 est actuellement en préversion. Installer avec dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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 2.0.0-rc CLI. Data API Builder 2.0 est actuellement en préversion. Installer avec 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"

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 2.0.0-rc CLI. Data API Builder 2.0 est actuellement en préversion. Installer avec dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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 2.0.0-rc CLI. Data API Builder 2.0 est actuellement en préversion. Installer avec 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

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 2.0.0-rc CLI. Data API Builder 2.0 est actuellement en préversion. Installer avec dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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 2.0.0-rc CLI. Data API Builder 2.0 est actuellement en préversion. Installer avec dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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 2.0.0-rc CLI. Data API Builder 2.0 est actuellement en préversion. Installer avec dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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.