Dela via


update kommando`

Uppdatera en befintlig entitetsdefinition i konfigurationsfilen för Data API Builder. Använd det här kommandot för att justera källmetadata, behörigheter, exponering (REST/GraphQL), principer, cachelagring, relationer, mappningar och beskrivande metadata för en befintlig entitet.

Tips/Råd

Använd dab add för att skapa nya entiteter och dab update för att utveckla dem. Om du vill hantera fältmetadata använder du --fields.name med --fields.alias, --fields.descriptionoch --fields.primary-key.

Syntax

dab update <entity-name> [options]

Snabbblick

Option Sammanfattning
<entity-name> Obligatoriskt positionsargument. Namn på logisk entitet.
-s, --source Namnet på källtabellen, vyn eller den lagrade proceduren.
-m, --map Mappningar mellan databasfält och exponerade namn.
--permissions Roll och åtgärder i role:actions format.
--description Ersätt entitetsbeskrivning.
-c, --config Sökväg till konfigurationsfilen. Standardmatchningen gäller om den utelämnas.
--help Visa hjälpskärmen.
--version Visa versionsinformation.

Cache

Option Sammanfattning
--cache.enabled Aktivera eller inaktivera cachelagring av entitet.
--cache.ttl Cachelagrade time-to-live i sekunder.

Fields

Option Sammanfattning
--fields.exclude Kommaavgränsad lista över exkluderade fält.
--fields.include Kommaavgränsad lista över inkluderade fält (* = alla).

Fältmetadata

Option Sammanfattning
--fields.name Namnet på den databaskolumn som ska beskrivas.
--fields.alias Alias för fältet.
--fields.description Beskrivning av fältet.
--fields.primary-key Ange det här fältet som en primärnyckel.

GraphQL

Option Sammanfattning
--graphql GraphQL-exponering: false, true, singulareller singular:plural.
--graphql.operation Lagrade procedurer endast: query eller mutation (standardmutation).

Behörigheter och principer

Option Sammanfattning
--permissions role:actions för en enda roll. Kör flera gånger för flera roller.
--policy-database OData-formatfilter som matas in i databasfrågan.
--policy-request Filter för fördatabasbegäran.

Relationships

Option Sammanfattning
--relationship Relationsnamn. Använd med relationsalternativ.
--cardinality Relations kardinalitet: one eller many.
--target.entity Målentitetsnamn.
--linking.object Länka objekt för många-till-många.
--linking.source.fields Länka objektfält som pekar på källan.
--linking.target.fields Länka objektfält som pekar på målet.
--relationship.fields Fältmappningar för direkta relationer.

REST

Option Sammanfattning
--rest REST-exponering: false, trueeller anpassad sökväg.
--rest.methods Endast lagrade procedurer. Ersätt tillåtna HTTP-verb.

Kartläggningar

Option Sammanfattning
-m, --map Mappningar mellan databasfält och exponerade namn.

MCP

Option Sammanfattning
--mcp.dml-tools Aktivera eller inaktivera MCP DML-verktyg för den här entiteten.
--mcp.custom-tool Aktivera anpassat MCP-verktyg (endast lagrade procedurer).

Källa

Option Sammanfattning
-s, --source Namn på underliggande databasobjekt.
--source.type Källtyp: table, vieweller stored-procedure.
--source.params Standardparametervärden för lagrade procedurer.
--source.key-fields Primära nyckelfält för vyer eller tabeller.

Parametrar (lagrade procedurer)

Option Sammanfattning
--parameters.name Kommaavgränsad lista med parameternamn.
--parameters.description Kommaavgränsad lista med parameterbeskrivningar.
--parameters.required Kommaavgränsad lista över obligatoriska flaggor.
--parameters.default Kommaavgränsad lista med standardvärden.

--cache.enabled

Aktivera eller inaktivera cachelagring för den här entiteten.

Example

dab update \
  Book \
  --cache.enabled true

Resulterande konfiguration

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

Anmärkning

När cachelagring är aktiverat (standard) skriver CLI ett tomt cache objekt. Egenskapen "enabled" visas endast explicit när den är inställd på false.

--cache.ttl

Ange tid till live-tid i sekunder för cacheminnet. Gäller endast om cachelagring är aktiverat.

Example

dab update \
  Book \
  --cache.ttl 600

Resulterande konfiguration

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

Anmärkning

Att ange TTL (time-to-live) när cachen är inaktiverad har ingen effekt förrän cachelagring har aktiverats.

--description

Ersätt entitetsbeskrivning.

Anmärkning

Det här alternativet är tillgängligt i 2.0.0-rc CLI. Data API Builder 2.0 är för närvarande i förhandsversion. Installera med dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

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

Resulterande konfiguration

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

--fields.exclude

Kommaavgränsad lista över fält som ska undantas.

Example

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

Resulterande konfiguration

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

--fields.include

Kommaavgränsad lista över fält som ska inkluderas. * innehåller alla fält. Ersätter den befintliga inkluderingslistan.

Example

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

Resulterande konfiguration

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

--graphql

Kontrollera GraphQL-exponering.

Example

dab update \
  Book \
  --graphql book:books

Resulterande konfiguration

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

--graphql.operation

Endast lagrade procedurer. Anger åtgärdstyp. Standard är mutation.

Example

dab update \
  RunReport \
  --graphql.operation query

Resulterande konfiguration

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

Anmärkning

--graphql.operation Att ange för tabeller eller vyer ignoreras.

--permissions

Lägger till eller uppdaterar behörigheter för en enskild roll och dess åtgärder.

Du kan köra dab update flera gånger (en gång per roll) för att lägga till flera roller.

Example

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

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

Resulterande konfiguration

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

Anmärkning

Om den angivna rollen redan finns uppdateras dess åtgärder. annars läggs rollen till.

--policy-database

OData-formatfilter som läggs till i databasfrågan.

Example

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

Resulterande konfiguration

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

--policy-request

Princip på begäransnivå utvärderas innan den når databasen.

Example

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

Resulterande konfiguration

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

--relationship

Definiera eller uppdatera en relation. Använd med andra relationsalternativ.

Example

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

Resulterande konfiguration

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

--cardinality

Kardinalitet för relationen. Använd med --relationship.

Example

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

--target.entity

Målentitetsnamn för relationen. Använd med --relationship.

Example

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

--linking.object

Endast många-till-många. Namnet på databasobjektet som ska användas som länkobjekt.

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

Endast många-till-många. Kommaavgränsad lista över länkade objektfält som pekar på källentiteten.

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

Endast många-till-många. Kommaavgränsad lista över länkade objektfält som pekar på målentiteten.

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

Kolonavgränsade fältmappningar för direkta relationer.

Värdet --relationship.fields är en kommaavgränsad lista med sourceField:targetField par.

Example

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

Resulterande konfiguration

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

--rest

Kontrollera REST-exponering.

Example

dab update \
  Book \
  --rest BooksApi

Resulterande konfiguration

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

--rest.methods

Endast lagrade procedurer. Ersätt tillåtna HTTP-metoder. Standardvärdet är POST.

Example

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

Resulterande konfiguration

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

Anmärkning

Att --rest.methods ange medan REST är inaktiverat har ingen effekt.

-s, --source

Uppdatera det underliggande databasobjektet.

Example

dab update \
  Book \
  --source dbo.Books

Resulterande konfiguration

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

--source.type

Ändra källobjekttypen.

Anmärkning

Vyer kräver --source.key-fields. Om du ändrar till view utan att ange nyckelfält uppstår ett fel.

Example

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

Resulterande konfiguration

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

--source.params

Endast lagrade procedurer. Standardparametervärden som name:value par.

Example

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

Resulterande konfiguration

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

Ange primära nyckelfält för vyer eller tabeller utan en härledd nyckel.

Example

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

Resulterande konfiguration

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

Anmärkning

Vyer kräver alltid nyckelfält. Alternativet --source.key-fields lägger till poster i matrisen fields med "primary-key": true.

-m, --map

Ange mappningar mellan databaskolumnnamn och exponerade REST/GraphQL-fältnamn.

Example

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

Resulterande konfiguration

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

Anmärkning

Alternativet --map skapar poster i matrisen fields med egenskapsuppsättningen alias .

--parameters.name

Endast lagrade procedurer. Kommaavgränsad lista med parameternamn.

Anmärkning

Det här alternativet är tillgängligt i 2.0.0-rc CLI. Data API Builder 2.0 är för närvarande i förhandsversion. Installera med dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Tips/Råd

Om du vill definiera parametrar för lagrad procedur använder du --parameters.name med --parameters.description, --parameters.requiredoch --parameters.default.

Example

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

Resulterande konfiguration

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

--parameters.description

Endast lagrade procedurer. Kommaavgränsad lista över parameterbeskrivningar som är justerade till --parameters.name.

Anmärkning

Det här alternativet är tillgängligt i 2.0.0-rc CLI. Data API Builder 2.0 är för närvarande i förhandsversion. Installera med 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

Endast lagrade procedurer. Kommaavgränsad lista med true/false värden som är justerade till .--parameters.name

Anmärkning

Det här alternativet är tillgängligt i 2.0.0-rc CLI. Data API Builder 2.0 är för närvarande i förhandsversion. Installera med 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

Endast lagrade procedurer. Kommaavgränsad lista med standardvärden som är justerade till --parameters.name.

Anmärkning

Det här alternativet är tillgängligt i 2.0.0-rc CLI. Data API Builder 2.0 är för närvarande i förhandsversion. Installera med dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

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

--fields.name

Namnet på den databaskolumn som ska beskrivas.

Anmärkning

Det här alternativet är tillgängligt i 2.0.0-rc CLI. Data API Builder 2.0 är för närvarande i förhandsversion. Installera med 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"

Resulterande konfiguration

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

--fields.alias

Alias för fältet. Använd en kommaavgränsad lista som är justerad till --fields.name.

Anmärkning

Det här alternativet är tillgängligt i 2.0.0-rc CLI. Data API Builder 2.0 är för närvarande i förhandsversion. Installera med dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Tips/Råd

Använd --fields.alias med --fields.name för att definiera exponerade fältnamn.

Example

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

--fields.description

Beskrivning av fältet. Använd en kommaavgränsad lista som är justerad till --fields.name.

Anmärkning

Det här alternativet är tillgängligt i 2.0.0-rc CLI. Data API Builder 2.0 är för närvarande i förhandsversion. Installera med 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

Primärnyckelflagga för fältet. Använd en kommaavgränsad lista med true/false värden som är justerade till .--fields.name

Anmärkning

Det här alternativet är tillgängligt i 2.0.0-rc CLI. Data API Builder 2.0 är för närvarande i förhandsversion. Installera med dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Tips/Råd

Använd --fields.primary-key med --fields.name för att definiera primärnyckelfält för vyer eller tabeller utan en härledd nyckel.

Example

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

Resulterande konfiguration

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

--mcp.dml-tools

Aktivera eller inaktivera MCP DML-verktyg (datamanipuleringsspråk) för den här entiteten. Standard är true.

Anmärkning

Det här alternativet är tillgängligt i 2.0.0-rc CLI. Data API Builder 2.0 är för närvarande i förhandsversion. Installera med dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

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

Resulterande konfiguration

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

Anmärkning

När --mcp.dml-tools används anger du mcp med hjälp av objektformuläret så att konfigurationen är explicit.

--mcp.custom-tool

Endast lagrade procedurer. Aktivera anpassat MCP-verktyg för den här entiteten. Standard är false.

Anmärkning

Det här alternativet är tillgängligt i 2.0.0-rc CLI. Data API Builder 2.0 är för närvarande i förhandsversion. Installera med dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

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

Resulterande konfiguration

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

-c, --config

Sökväg till konfigurationsfilen.

Example

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

--help

Visa hjälpskärmen.

Example

dab update --help

--version

Visa versionsinformation.

Example

dab update --version

Viktigt!

Om du ändrar källtyp kan andra egenskaper ogiltigförklaras. Vyer kräver till exempel alltid nyckelfält. lagrade procedurer kan inte definiera nyckelfält.