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 2.0.0-rc CLI. Penyusun API Data 2.0 saat ini dalam pratinjau. Instal dengan dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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 2.0.0-rc CLI. Penyusun API Data 2.0 saat ini dalam pratinjau. Instal dengan dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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 2.0.0-rc CLI. Penyusun API Data 2.0 saat ini dalam pratinjau. Instal dengan 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

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

Nota

Opsi ini tersedia di 2.0.0-rc CLI. Penyusun API Data 2.0 saat ini dalam pratinjau. Instal dengan 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

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

Nota

Opsi ini tersedia di 2.0.0-rc CLI. Penyusun API Data 2.0 saat ini dalam pratinjau. Instal dengan dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

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

--fields.name

Nama kolom database yang akan dijelaskan.

Nota

Opsi ini tersedia di 2.0.0-rc CLI. Penyusun API Data 2.0 saat ini dalam pratinjau. Instal dengan 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"

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 2.0.0-rc CLI. Penyusun API Data 2.0 saat ini dalam pratinjau. Instal dengan dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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 2.0.0-rc CLI. Penyusun API Data 2.0 saat ini dalam pratinjau. Instal dengan 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

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

Nota

Opsi ini tersedia di 2.0.0-rc CLI. Penyusun API Data 2.0 saat ini dalam pratinjau. Instal dengan dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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 2.0.0-rc CLI. Penyusun API Data 2.0 saat ini dalam pratinjau. Instal dengan dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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 2.0.0-rc CLI. Penyusun API Data 2.0 saat ini dalam pratinjau. Instal dengan dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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.