次の方法で共有


add コマンド

既存のデータ 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 の公開: falsetruesingular、または singular:plural
--graphql.operation ストアド プロシージャのみ。 query または mutation (既定の変更)。
--permissions 必須。 1 つ以上の role:actions ペア。 再現。
--policy-database DB クエリに適用される OData スタイルのフィルター。
--policy-request DB 呼び出しの前に評価された要求ポリシー。
--rest REST 公開: falsetrue、またはカスタム ルート。
--rest.methods ストアド プロシージャのみ。 許可される HTTP 動詞。 既定の POST。
-s, --source 必須。 データベース オブジェクト名 (テーブル、ビュー、またはストアド プロシージャ)。
--source.key-fields ビューまたは PK が推論されない場合に必要です。 プロシージャには使用できません。
--source.params ストアド プロシージャのみ。 既定のパラメーター値。
--source.type ソースの種類: tableviewstored-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" ] }
      ]
    }
  }
}