既存のデータ API ビルダー構成ファイルに新しいエンティティ定義を追加します。
dab initで作成された構成が既に必要です。
dab updateを使用して、作成後にエンティティを変更します。
ヒント
dab addを使用して新しいエンティティを作成し、それらを進化dab updateします。 フィールド名の再マッピング (--map) は、addではなく、updateでのみ使用できます。
構文
dab add <entity-name> [options]
チラッ
| Option | 概要 |
|---|---|
<entity-name> |
必要な位置引数。 論理エンティティ名。 |
-c, --config |
構成ファイルのパス。 デフォルト dab-config.json。 |
--cache.enabled |
エンティティのキャッシュを有効または無効にします。 |
--cache.ttl |
キャッシュの有効期間 (秒単位)。 |
--description |
エンティティの自由形式の説明。 |
--fields.exclude |
コンマ区切りの除外フィールド。 |
--fields.include |
コンマ区切りの許可されるフィールド (* = すべて)。 |
--graphql |
GraphQL の公開: false、 true、 singular、または singular:plural。 |
--graphql.operation |
ストアド プロシージャのみ。
query または mutation (既定の変更)。 |
--permissions |
必須。 1 つ以上の role:actions ペア。 再現。 |
--policy-database |
DB クエリに適用される OData スタイルのフィルター。 |
--policy-request |
DB 呼び出しの前に評価された要求ポリシー。 |
--rest |
REST 公開: false、 true、またはカスタム ルート。 |
--rest.methods |
ストアド プロシージャのみ。 許可される HTTP 動詞。 既定の POST。 |
-s, --source |
必須。 データベース オブジェクト名 (テーブル、ビュー、またはストアド プロシージャ)。 |
--source.key-fields |
ビューまたは PK が推論されない場合に必要です。 プロシージャには使用できません。 |
--source.params |
ストアド プロシージャのみ。 既定のパラメーター値。 |
--source.type |
ソースの種類: table、 view、 stored-procedure (既定のテーブル)。 |
<entity-name>
config 内のエンティティの論理名。大文字と小文字が区別されます。
Example
dab add Book --source dbo.Books --permissions "anonymous:read"
結果の構成
{
"entities": {
"Book": {
"source": {
"type": "table",
"object": "dbo.Books"
},
"permissions": [
{
"role": "anonymous",
"actions": [ "read" ]
}
]
}
}
}
-c, --config
構成ファイルのパス。 既定値は dab-config.json です。
Example
dab add Book --config ./dab-config.mssql.json --source dbo.Books --permissions "anonymous:read"
--cache.enabled
キャッシュを有効または無効にします。
Example
dab add Book --source dbo.Books --permissions "anonymous:read" --cache.enabled true
結果の構成
{
"entities": {
"Book": {
"source": {
"type": "table",
"object": "dbo.Books"
},
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
],
"cache": {
"enabled": true
}
}
}
}
--cache.ttl
キャッシュの有効期間 (秒単位)。
Example
dab add Book --source dbo.Books --permissions "anonymous:read" --cache.ttl 300
結果の構成
{
"entities": {
"Book": {
"source": {
"type": "table",
"object": "dbo.Books"
},
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
],
"cache": {
"ttl-seconds": 300
}
}
}
}
--description
エンティティの自由テキストの説明。
Example
dab add Book --source dbo.Books --permissions "anonymous:read" --description "Entity for managing book inventory"
結果の構成
{
"entities": {
"Book": {
"source": {
"type": "table",
"object": "dbo.Books"
},
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
],
"description": "Entity for managing book inventory"
}
}
}
--fields.exclude
除外するフィールドのコンマ区切りのリスト。
Example
dab add Book --source dbo.Books --permissions "anonymous:read" --fields.exclude "internal_flag,secret_note"
結果の構成
{
"entities": {
"Book": {
"source": { "type": "table", "object": "dbo.Books" },
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
],
"graphql": {
"fields": {
"exclude": [ "internal_flag", "secret_note" ]
}
}
}
}
}
--fields.include
公開するフィールドのコンマ区切りのリスト。
Example
dab add Book --source dbo.Books --permissions "anonymous:read" --fields.include "id,title,price"
結果の構成
{
"entities": {
"Book": {
"source": { "type": "table", "object": "dbo.Books" },
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
],
"graphql": {
"fields": {
"include": [ "id", "title", "price" ]
}
}
}
}
}
--graphql
GraphQL の公開を制御します。
Example
dab add Book --source dbo.Books --permissions "anonymous:read" --graphql book:books
結果の構成
{
"entities": {
"Book": {
"source": { "type": "table", "object": "dbo.Books" },
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
],
"graphql": {
"singular": "book",
"plural": "books"
}
}
}
}
--graphql.operation
ストアド プロシージャのみ。 GraphQL 操作の種類。 既定値は mutation です。
Example
dab add BookProc --source dbo.MyProc --source.type stored-procedure --permissions "admin:execute" --graphql.operation query
結果の構成
{
"entities": {
"BookProc": {
"source": { "type": "stored-procedure", "object": "dbo.MyProc" },
"permissions": [
{ "role": "admin", "actions": [ "execute" ] }
],
"graphql": {
"operation": "query"
}
}
}
}
--permissions
ロール→アクションのペアを定義します。 複数のロールに対して繰り返しフラグを使用します。
Example
dab add Book --source dbo.Books --permissions "anonymous:read" --permissions "authenticated:create,read,update,delete"
結果の構成
{
"entities": {
"Book": {
"source": { "type": "table", "object": "dbo.Books" },
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] },
{ "role": "authenticated", "actions": [ "create", "read", "update", "delete" ] }
]
}
}
}
--policy-database
データベース レベルのポリシー。
Example
dab add Book --source dbo.Books --permissions "anonymous:read" --policy-database "region eq 'US'"
結果の構成
{
"entities": {
"Book": {
"source": { "type": "table", "object": "dbo.Books" },
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
],
"policies": {
"database": "region eq 'US'"
}
}
}
}
--policy-request
要求レベルのポリシー。
Example
dab add Book --source dbo.Books --permissions "anonymous:read" --policy-request "@claims.role == 'admin'"
結果の構成
{
"entities": {
"Book": {
"source": { "type": "table", "object": "dbo.Books" },
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
],
"policies": {
"request": "@claims.role == 'admin'"
}
}
}
}
--rest
REST の公開を制御します。
Example
dab add Book --source dbo.Books --permissions "anonymous:read" --rest BooksApi
結果の構成
{
"entities": {
"Book": {
"source": { "type": "table", "object": "dbo.Books" },
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
],
"rest": {
"path": "BooksApi"
}
}
}
}
--rest.methods
ストアド プロシージャのみ。 実行できる HTTP 動詞。 既定値は POST です。 テーブル/ビューでは無視されます。
Example
dab add BookProc --source dbo.MyProc --source.type stored-procedure --permissions "admin:execute" --rest true --rest.methods GET,POST
結果の構成
{
"entities": {
"BookProc": {
"source": { "type": "stored-procedure", "object": "dbo.MyProc" },
"permissions": [
{ "role": "admin", "actions": [ "execute" ] }
],
"rest": {
"path": "BookProc",
"methods": [ "GET", "POST" ]
}
}
}
}
-s, --source
必須。 データベース オブジェクトの名前: テーブル、ビュー、またはストアド プロシージャ。
Example
dab add Book --source dbo.Books --permissions "anonymous:read"
結果の構成
{
"entities": {
"Book": {
"source": {
"type": "table",
"object": "dbo.Books"
},
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
]
}
}
}
--source.key-fields
ビューでは必須です。 推論可能な PK がないテーブルにも必要です。 ストアド プロシージャには使用できません。
Example
dab add BookView --source dbo.MyView --source.type view --source.key-fields "id,region" --permissions "anonymous:read"
結果の構成
{
"entities": {
"BookView": {
"source": {
"type": "view",
"object": "dbo.MyView",
"keyFields": [ "id", "region" ]
},
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
]
}
}
}
--source.params
ストアド プロシージャのみ。 コンマ区切りの name:value ペア。 テーブルまたはビューには使用できません。
Example
dab add BookProc --source dbo.MyProc --source.type stored-procedure --source.params "year:2024,active:true" --permissions "admin:execute"
結果の構成
{
"entities": {
"BookProc": {
"source": {
"type": "stored-procedure",
"object": "dbo.MyProc",
"params": {
"year": 2024,
"active": true
}
},
"permissions": [
{ "role": "admin", "actions": [ "execute" ] }
]
}
}
}
--source.type
データベース オブジェクトの種類。 既定値: table。
Example
dab add Book --source dbo.Books --source.type table --permissions "anonymous:read"
結果の構成
{
"entities": {
"Book": {
"source": {
"type": "table",
"object": "dbo.Books"
},
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
]
}
}
}