Поделиться через


Команда add

Добавьте новое определение сущности в существующий файл конфигурации построителя данных. У вас уже должна быть конфигурация, созданная с dab initпомощью . Используется dab update для изменения сущностей после создания.

Подсказка

Используется dab add для создания новых сущностей и dab update их развития. Имя поля повторное сопоставление (--map) доступно только в update, а не в add.

Синтаксис

dab add <entity-name> [options]

Краткий обзор

Вариант Сводка
<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 Обязательное. Одна или несколько role:actions пар. Повторяемые.
--policy-database Фильтр стиля OData применяется в запросе базы данных.
--policy-request Политика запроса, вычисляемая перед вызовом базы данных.
--rest Экспозиция REST: false, trueили настраиваемый маршрут.
--rest.methods Хранимые процедуры только. Разрешенные HTTP-команды. По умолчанию POST.
-s, --source Обязательное. Имя объекта базы данных (таблица, представление или хранимая процедура).
--source.key-fields Требуется для представлений или когда PK не выводится. Запрещено для procs.
--source.params Хранимые процедуры только. Значения параметров по умолчанию.
--source.type Тип источника: table, viewstored-procedure (таблица по умолчанию).

<entity-name>

Логическое имя сущности в конфигурации. Учитывает регистр.

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

Определяет пары ролей→actions. Используйте повторяющиеся флаги для нескольких ролей.

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" ] }
      ]
    }
  }
}