update perintah

Perbarui definisi entitas yang ada dalam file konfigurasi penyusun API Data. Gunakan perintah ini untuk menyesuaikan metadata sumber, izin, paparan (REST/GraphQL), kebijakan, penembolokan, hubungan, pemetaan, dan metadata deskriptif untuk entitas yang ada.

Petunjuk / Saran

Gunakan dab add untuk membuat entitas baru, dan dab update untuk mengembangkannya. Untuk mengelola metadata bidang, gunakan --fields.name dengan --fields.alias, , --fields.descriptiondan --fields.primary-key.

Syntax

dab update <entity-name> [options]

Sekilas

Option Ringkasan
<entity-name> Argumen posisi yang diperlukan. Nama entitas logis.
-s, --source Nama tabel sumber, tampilan, atau prosedur tersimpan.
-m, --map Pemetaan antara bidang database dan nama yang diekspos.
--permissions Peran dan tindakan dalam role:actions format.
--description Ganti deskripsi entitas.
-c, --config Jalur ke file konfigurasi. Resolusi default berlaku jika dihilangkan.
--help Tampilkan layar bantuan.
--version Tampilkan informasi versi.

Cache

Option Ringkasan
--cache.enabled Mengaktifkan atau menonaktifkan penembolokan entitas.
--cache.ttl Cache time-to-live dalam hitungan detik.

Fields

Option Ringkasan
--fields.exclude Daftar bidang yang dikecualikan yang dipisahkan koma.
--fields.include Daftar bidang yang disertakan yang dipisahkan koma (* = semua).

Metadata bidang

Option Ringkasan
--fields.name Nama kolom database yang akan dijelaskan.
--fields.alias Alias untuk bidang .
--fields.description Deskripsi untuk bidang .
--fields.primary-key Atur bidang ini sebagai kunci primer.

GraphQL

Option Ringkasan
--graphql Paparan GraphQL: false, true, singular, atau singular:plural.
--graphql.operation Prosedur tersimpan saja: query atau mutation (mutasi default).

Izin & Kebijakan

Option Ringkasan
--permissions role:actions untuk satu peran. Jalankan beberapa kali untuk beberapa peran.
--policy-database Filter gaya OData disuntikkan dalam kueri database.
--policy-request Filter permintaan prabase.

Hubungan

Option Ringkasan
--relationship Nama hubungan. Gunakan dengan opsi hubungan.
--cardinality Kardinalitas hubungan: one atau many.
--target.entity Nama entitas target.
--linking.object Menautkan objek untuk banyak ke banyak.
--linking.source.fields Menautkan bidang objek yang menunjuk ke sumber.
--linking.target.fields Menautkan bidang objek yang menunjuk ke target.
--relationship.fields Pemetaan bidang untuk hubungan langsung.

REST

Option Ringkasan
--rest Paparan REST: false, true, atau jalur kustom.
--rest.methods Prosedur tersimpan saja. Ganti kata kerja HTTP yang diizinkan.

Pemetaan

Option Ringkasan
-m, --map Pemetaan antara bidang database dan nama yang diekspos.

MCP

Option Ringkasan
--mcp.dml-tools Aktifkan atau nonaktifkan alat MCP DML untuk entitas ini.
--mcp.custom-tool Aktifkan alat kustom MCP (hanya prosedur tersimpan).

Sumber

Option Ringkasan
-s, --source Nama objek database yang mendasar.
--source.type Jenis sumber: table, view, atau stored-procedure.
--source.params Nilai parameter default untuk prosedur tersimpan.
--source.key-fields Bidang kunci primer untuk tampilan atau tabel.

Parameter (prosedur tersimpan)

Option Ringkasan
--parameters.name Daftar nama parameter yang dipisahkan koma.
--parameters.description Daftar deskripsi parameter yang dipisahkan koma.
--parameters.required Daftar bendera yang diperlukan yang dipisahkan koma.
--parameters.default Daftar nilai default yang dipisahkan koma.

--cache.enabled

Aktifkan atau nonaktifkan penembolokan untuk entitas ini.

Example

dab update \
  Book \
  --cache.enabled true

Konfigurasi yang dihasilkan

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

Nota

Saat penembolokan diaktifkan (default), CLI menulis objek kosong cache . Properti "enabled" hanya muncul secara eksplisit saat diatur ke false.

--cache.ttl

Atur cache time-to-live dalam hitungan detik. Hanya efektif jika penembolokan diaktifkan.

Example

dab update \
  Book \
  --cache.ttl 600

Konfigurasi yang dihasilkan

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

Nota

Menyediakan TTL (time-to-live) ketika cache dinonaktifkan tidak berpengaruh sampai penembolokan diaktifkan.

--description

Ganti deskripsi entitas.

Nota

Opsi ini tersedia di CLI pratinjau Azure Data API builder 2.0. Instal prarilis terbaru dengan dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

Konfigurasi yang dihasilkan

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

--fields.exclude

Daftar bidang yang dipisahkan koma untuk dikecualikan.

Example

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

Konfigurasi yang dihasilkan

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

--fields.include

Daftar bidang yang dipisahkan koma untuk disertakan. * mencakup semua bidang. Mengganti daftar sertakan yang sudah ada.

Example

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

Konfigurasi yang dihasilkan

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

--graphql

Mengontrol paparan GraphQL.

Example

dab update \
  Book \
  --graphql book:books

Konfigurasi yang dihasilkan

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

--graphql.operation

Prosedur tersimpan saja. Mengatur jenis operasi. Defaultnya adalah mutation.

Example

dab update \
  RunReport \
  --graphql.operation query

Konfigurasi yang dihasilkan

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

Nota

Penyediaan --graphql.operation untuk tabel atau tampilan diabaikan.

--permissions

Menambahkan atau memperbarui izin untuk satu peran dan tindakannya.

Anda dapat menjalankan dab update beberapa kali (sekali per peran) untuk menambahkan beberapa peran.

Example

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

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

Konfigurasi yang dihasilkan

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

Nota

Jika peran yang ditentukan sudah ada, tindakannya akan diperbarui; jika tidak, peran ditambahkan.

--policy-database

Filter gaya OData ditambahkan ke kueri database.

Example

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

Konfigurasi yang dihasilkan

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

--policy-request

Kebijakan tingkat permintaan dievaluasi sebelum mencapai database.

Example

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

Konfigurasi yang dihasilkan

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

--relationship

Tentukan atau perbarui hubungan. Gunakan dengan opsi hubungan lainnya.

Example

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

Konfigurasi yang dihasilkan

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

--cardinality

Kardinalitas untuk hubungan. Gunakan dengan --relationship.

Example

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

--target.entity

Nama entitas target untuk hubungan. Gunakan dengan --relationship.

Example

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

--linking.object

Banyak-ke-banyak saja. Nama objek database yang akan digunakan sebagai objek penautan.

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

Banyak-ke-banyak saja. Daftar bidang objek penautan yang dipisahkan koma yang menunjuk ke entitas sumber.

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

Banyak-ke-banyak saja. Daftar bidang objek penautan yang dipisahkan koma yang menunjuk ke entitas target.

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

Pemetaan bidang yang dipisahkan titik dua untuk hubungan langsung.

Nilainya --relationship.fields adalah daftar pasangan yang sourceField:targetField dipisahkan koma.

Example

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

Konfigurasi yang dihasilkan

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

--rest

Mengontrol paparan REST.

Example

dab update \
  Book \
  --rest BooksApi

Konfigurasi yang dihasilkan

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

--rest.methods

Prosedur tersimpan saja. Ganti metode HTTP yang diizinkan. Default ke POST.

Example

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

Konfigurasi yang dihasilkan

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

Nota

Penyediaan --rest.methods saat REST dinonaktifkan tidak berpengaruh.

-s, --source

Perbarui objek database yang mendasar.

Example

dab update \
  Book \
  --source dbo.Books

Konfigurasi yang dihasilkan

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

--source.type

Ubah jenis objek sumber.

Nota

Tampilan memerlukan --source.key-fields. Mengubah menjadi view tanpa menentukan bidang kunci menghasilkan kesalahan.

Example

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

Konfigurasi yang dihasilkan

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

--source.params

Prosedur tersimpan saja. Nilai parameter default sebagai name:value pasangan.

Example

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

Konfigurasi yang dihasilkan

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

Tentukan bidang kunci primer untuk tampilan atau tabel tanpa kunci yang disimpulkan.

Example

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

Konfigurasi yang dihasilkan

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

Nota

Tampilan selalu memerlukan bidang kunci. Opsi --source.key-fields menambahkan entri ke fields array dengan "primary-key": true.

-m, --map

Tentukan pemetaan antara nama kolom database dan nama bidang REST/GraphQL yang diekspos.

Example

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

Konfigurasi yang dihasilkan

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

Nota

Opsi --map membuat entri dalam fields array dengan alias kumpulan properti.

--parameters.name

Prosedur tersimpan saja. Daftar nama parameter yang dipisahkan koma.

Nota

Opsi ini tersedia di CLI pratinjau Azure Data API builder 2.0. Instal prarilis terbaru dengan dotnet tool install microsoft.dataapibuilder --prerelease.

Petunjuk / Saran

Untuk menentukan parameter prosedur tersimpan, gunakan --parameters.name dengan --parameters.description, --parameters.required, dan --parameters.default.

Example

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

Konfigurasi yang dihasilkan

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

--parameters.description

Prosedur tersimpan saja. Daftar deskripsi parameter yang dipisahkan koma yang selaras dengan --parameters.name.

Nota

Opsi ini tersedia di CLI pratinjau Azure Data API builder 2.0. Instal prarilis terbaru dengan 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

Prosedur tersimpan saja. Daftar nilai yang true/false dipisahkan koma yang diratakan ke .--parameters.name

Nota

Opsi ini tersedia di CLI pratinjau Azure Data API builder 2.0. Instal prarilis terbaru dengan dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

--parameters.default

Prosedur tersimpan saja. Daftar nilai default yang dipisahkan koma yang diratakan ke --parameters.name.

Nota

Opsi ini tersedia di CLI pratinjau Azure Data API builder 2.0. Instal prarilis terbaru dengan dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

--fields.name

Nama kolom database yang akan dijelaskan.

Nota

Opsi ini tersedia di CLI pratinjau Azure Data API builder 2.0. Instal prarilis terbaru dengan dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

Konfigurasi yang dihasilkan

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

--fields.alias

Alias untuk bidang . Gunakan daftar yang dipisahkan koma yang diratakan ke --fields.name.

Nota

Opsi ini tersedia di CLI pratinjau Azure Data API builder 2.0. Instal prarilis terbaru dengan dotnet tool install microsoft.dataapibuilder --prerelease.

Petunjuk / Saran

Gunakan --fields.alias dengan --fields.name untuk menentukan nama bidang yang diekspos.

Example

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

--fields.description

Deskripsi untuk bidang . Gunakan daftar yang dipisahkan koma yang diratakan ke --fields.name.

Nota

Opsi ini tersedia di CLI pratinjau Azure Data API builder 2.0. Instal prarilis terbaru dengan dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

--fields.primary-key

Bendera kunci utama untuk bidang . Gunakan daftar true/false nilai yang dipisahkan koma yang diratakan ke .--fields.name

Nota

Opsi ini tersedia di CLI pratinjau Azure Data API builder 2.0. Instal prarilis terbaru dengan dotnet tool install microsoft.dataapibuilder --prerelease.

Petunjuk / Saran

Gunakan --fields.primary-key dengan --fields.name untuk menentukan bidang kunci utama untuk tampilan atau tabel tanpa kunci yang disimpulkan.

Example

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

Konfigurasi yang dihasilkan

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

--mcp.dml-tools

Aktifkan atau nonaktifkan alat MCP DML (bahasa manipulasi data) untuk entitas ini. Defaultnya adalah true.

Nota

Opsi ini tersedia di CLI pratinjau Azure Data API builder 2.0. Instal prarilis terbaru dengan dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

Konfigurasi yang dihasilkan

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

Nota

Saat --mcp.dml-tools digunakan, atur mcp menggunakan formulir objek sehingga konfigurasinya eksplisit.

--mcp.custom-tool

Prosedur tersimpan saja. Aktifkan alat kustom MCP untuk entitas ini. Defaultnya adalah false.

Nota

Opsi ini tersedia di CLI pratinjau Azure Data API builder 2.0. Instal prarilis terbaru dengan dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

Konfigurasi yang dihasilkan

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

-c, --config

Jalur ke file konfigurasi.

Example

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

--help

Tampilkan layar bantuan.

Example

dab update --help

--version

Tampilkan informasi versi.

Example

dab update --version

Penting

Mengubah tipe sumber dapat membatalkan properti lain. Misalnya, tampilan selalu memerlukan bidang kunci; prosedur tersimpan tidak dapat menentukan bidang kunci.