Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Update an existing entity definition in the Data API builder configuration file. Use this command to adjust source metadata, permissions, exposure (REST/GraphQL), policies, caching, relationships, mappings, and descriptive metadata after the entity has already been added.
Tip
Use dab add to create new entities, and dab update to evolve them. Field name remapping (--map) is only available in update, not in add.
Syntax
dab update <entity-name> [options]
Quick glance
| Option | Summary |
|---|---|
<entity-name> |
Required positional argument. Logical entity name. |
-c, --config |
Path to config file. Default resolution applies if omitted. |
--description |
Replace entity description. |
Cache
| Option | Summary |
|---|---|
--cache.enabled |
Enable or disable entity caching. |
--cache.ttl |
Cache time-to-live in seconds. |
Fields
| Option | Summary |
|---|---|
--fields.exclude |
Comma-separated list of excluded fields. |
--fields.include |
Comma-separated list of included fields (* = all). |
-m, --map |
Field mapping pairs name:alias. Replaces entire set. |
GraphQL
| Option | Summary |
|---|---|
--graphql |
GraphQL exposure: false, true, singular, or singular:plural. |
--graphql.operation |
Stored procedures only: query or mutation (default mutation). |
Permissions & Policies
| Option | Summary |
|---|---|
--permissions |
One or more role:actions pairs. Replaces existing list. |
--policy-database |
OData-style filter injected in DB query. |
--policy-request |
Pre-database request filter. |
Relationships
| Option | Summary |
|---|---|
--relationship |
Relationship name. Use with relationship options. |
--relationship.fields |
Field mappings for direct relationships. |
REST
| Option | Summary |
|---|---|
--rest |
REST exposure: false, true, or custom path. |
--rest.methods |
Stored procedures only. Replace allowed HTTP verbs. |
Source
| Option | Summary |
|---|---|
-s, --source |
Underlying database object name. |
--source.key-fields |
Required for views or non-PK tables. |
--source.params |
Stored procedures only. Replace default params. |
--source.type |
Source type: table, view, or stored-procedure. |
--cache.enabled
Enable or disable caching for this entity.
Example
dab update Book --cache.enabled true
Resulting config
{
"entities": {
"Book": {
"cache": {
"enabled": true
}
}
}
}
--cache.ttl
Set cache time-to-live in seconds. Only effective if caching is enabled.
Example
dab update Book --cache.ttl 600
Resulting config
{
"entities": {
"Book": {
"cache": {
"ttl-seconds": 600
}
}
}
}
Note
Supplying TTL when cache is disabled has no effect until caching is enabled.
--description
Replace entity description.
Example
dab update Book --description "Updated description"
Resulting config
{
"entities": {
"Book": {
"description": "Updated description"
}
}
}
--fields.exclude
Comma-separated list of fields to exclude.
Example
dab update Book --fields.exclude "internal_flag,secret_note"
Resulting config
{
"entities": {
"Book": {
"graphql": {
"fields": {
"exclude": [ "internal_flag", "secret_note" ]
}
}
}
}
}
--fields.include
Comma-separated list of fields to include. * includes all fields. Replaces existing include list.
Example
dab update Book --fields.include "id,title,author"
Resulting config
{
"entities": {
"Book": {
"graphql": {
"fields": {
"include": [ "id", "title", "author" ]
}
}
}
}
}
--graphql
Control GraphQL exposure.
Example
dab update Book --graphql book:books
Resulting config
{
"entities": {
"Book": {
"graphql": {
"singular": "book",
"plural": "books"
}
}
}
}
--graphql.operation
Stored procedures only. Sets operation type. Default is mutation.
Example
dab update RunReport --graphql.operation query
Resulting config
{
"entities": {
"RunReport": {
"graphql": {
"operation": "query"
}
}
}
}
Note
Supplying --graphql.operation for tables or views is ignored.
-m, --map
Map database fields to exposed names. Replaces the entire mapping set.
Example
dab update Book --map "id:bookId,title:bookTitle"
Resulting config
{
"entities": {
"Book": {
"mappings": {
"id": "bookId",
"title": "bookTitle"
}
}
}
}
Important
Any existing mappings are overwritten. Restate all mappings you want to keep.
--permissions
Replace all permissions with new role/action sets. Repeat flag for multiple roles.
Example
dab update Book --permissions "anonymous:read" --permissions "authenticated:create,read,update"
Resulting config
{
"entities": {
"Book": {
"permissions": [
{
"role": "anonymous",
"actions": [ "read" ]
},
{
"role": "authenticated",
"actions": [ "create", "read", "update" ]
}
]
}
}
}
Important
Permissions replace the existing list. Previous permissions are discarded.
--policy-database
OData-style filter appended to DB query.
Example
dab update Book --policy-database "region eq 'US'"
Resulting config
{
"entities": {
"Book": {
"policies": {
"database": "region eq 'US'"
}
}
}
}
--policy-request
Request-level policy evaluated before hitting the database.
Example
dab update Book --policy-request "@claims.role == 'admin'"
Resulting config
{
"entities": {
"Book": {
"policies": {
"request": "@claims.role == 'admin'"
}
}
}
}
--relationship
Define or update a relationship. Use with other relationship options.
Example
dab update Book --relationship publisher --cardinality one --target.entity Publisher --relationship.fields "publisher_id:id"
Resulting config
{
"entities": {
"Book": {
"relationships": {
"publisher": {
"cardinality": "one",
"target.entity": "Publisher",
"fields": {
"publisher_id": "id"
}
}
}
}
}
}
--relationship.fields
Colon-separated field mappings for direct relationships.
Example
dab update Book --relationship author --cardinality one --target.entity Author --relationship.fields "author_id:id"
Resulting config
{
"entities": {
"Book": {
"relationships": {
"author": {
"cardinality": "one",
"target.entity": "Author",
"fields": {
"author_id": "id"
}
}
}
}
}
}
--rest
Control REST exposure.
Example
dab update Book --rest BooksApi
Resulting config
{
"entities": {
"Book": {
"rest": {
"path": "BooksApi"
}
}
}
}
--rest.methods
Stored procedures only. Replace allowed HTTP methods. Defaults to POST.
Example
dab update RunReport --rest true --rest.methods GET,POST
Resulting config
{
"entities": {
"RunReport": {
"rest": {
"path": "RunReport",
"methods": [ "GET", "POST" ]
}
}
}
}
Note
Supplying --rest.methods while REST is disabled has no effect.
-s, --source
Update the underlying database object.
Example
dab update Book --source dbo.Books
Resulting config
{
"entities": {
"Book": {
"source": {
"type": "table",
"object": "dbo.Books"
}
}
}
}
--source.key-fields
For views or tables without an inferred PK. Replaces existing keys. Not valid for stored procedures.
Example
dab update SalesSummary --source.type view --source.key-fields "year,region"
Resulting config
{
"entities": {
"SalesSummary": {
"source": {
"type": "view",
"object": "SalesSummary",
"keyFields": [ "year", "region" ]
}
}
}
}
Note
Using --source.key-fields with stored procedures is not allowed.
--source.params
Stored procedures only. Replace parameter defaults.
Example
dab update RunReport --source.type stored-procedure --source.params "year:2024,region:west"
Resulting config
{
"entities": {
"RunReport": {
"source": {
"type": "stored-procedure",
"object": "RunReport",
"params": {
"year": 2024,
"region": "west"
}
}
}
}
}
Note
Using --source.params with tables or views is not allowed.
--source.type
Change the source object type.
Example
dab update Book --source.type view
Resulting config
{
"entities": {
"Book": {
"source": {
"type": "view",
"object": "Book"
}
}
}
}
Important
Changing source type may invalidate other properties. For example, views always require key-fields; stored procedures cannot define key-fields.