Compartilhar via


add comando

Adicione uma nova definição de entidade a um arquivo de configuração existente do construtor de API de Dados. Você já deve ter uma configuração criada com dab init. Use dab update para modificar entidades após a criação.

Dica

Use dab add para criar novas entidades e dab update evoluí-las. O remapeamento do nome do campo (--map) só está disponível em update, não em add.

Sintaxe

dab add <entity-name> [options]

Olhar rápido

Opção Resumo
<entity-name> Argumento posicional necessário. Nome da entidade lógica.
-c, --config Caminho do arquivo de configuração. Padrão dab-config.json.
--cache.enabled Habilitar/desabilitar o cache para a entidade.
--cache.ttl Tempo de vida útil do cache em segundos.
--description Descrição de formulário livre para a entidade.
--fields.exclude Campos excluídos separados por vírgulas.
--fields.include Campos permitidos separados por vírgulas (* = todos).
--graphql Exposição do GraphQL: false, , true, singularou singular:plural.
--graphql.operation Somente procedimentos armazenados. query ou mutation (mutação padrão).
--permissions Obrigatório Um ou mais role:actions pares. Repetível.
--policy-database Filtro no estilo OData aplicado na consulta DB.
--policy-request Política de solicitação avaliada antes da chamada do BD.
--rest Exposição REST: false, trueou rota personalizada.
--rest.methods Somente procedimentos armazenados. Verbos HTTP permitidos. POST padrão.
-s, --source Obrigatório Nome do objeto de banco de dados (tabela, exibição ou procedimento armazenado).
--source.key-fields Necessário para exibições ou quando pk não inferido. Não permitido para profissionais.
--source.params Somente procedimentos armazenados. Valores de parâmetro padrão.
--source.type Tipo de origem: table, view, stored-procedure (tabela padrão).

<entity-name>

Nome lógico da entidade em configuração. Diferencia maiúsculas de minúsculas.

Example

dab add Book --source dbo.Books --permissions "anonymous:read"

Configuração resultante

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        {
          "role": "anonymous",
          "actions": [ "read" ]
        }
      ]
    }
  }
}

-c, --config

Caminho do arquivo de configuração. O padrão é dab-config.json.

Example

dab add Book --config ./dab-config.mssql.json --source dbo.Books --permissions "anonymous:read"

--cache.enabled

Habilitar ou desabilitar o cache.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --cache.enabled true

Configuração resultante

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "cache": {
        "enabled": true
      }
    }
  }
}

--cache.ttl

Tempo de vida útil do cache em segundos.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --cache.ttl 300

Configuração resultante

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "cache": {
        "ttl-seconds": 300
      }
    }
  }
}

--description

Descrição de texto livre da entidade.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --description "Entity for managing book inventory"

Configuração resultante

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "description": "Entity for managing book inventory"
    }
  }
}

--fields.exclude

Lista separada por vírgulas de campos a serem excluídos.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --fields.exclude "internal_flag,secret_note"

Configuração resultante

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "graphql": {
        "fields": {
          "exclude": [ "internal_flag", "secret_note" ]
        }
      }
    }
  }
}

--fields.include

Lista separada por vírgulas de campos a serem expostos.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --fields.include "id,title,price"

Configuração resultante

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "graphql": {
        "fields": {
          "include": [ "id", "title", "price" ]
        }
      }
    }
  }
}

--graphql

Controlar a exposição do GraphQL.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --graphql book:books

Configuração resultante

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "graphql": {
        "singular": "book",
        "plural": "books"
      }
    }
  }
}

--graphql.operation

Somente procedimentos armazenados. Tipo de operação GraphQL. O padrão é mutation.

Example

dab add BookProc --source dbo.MyProc --source.type stored-procedure --permissions "admin:execute" --graphql.operation query

Configuração resultante

{
  "entities": {
    "BookProc": {
      "source": { "type": "stored-procedure", "object": "dbo.MyProc" },
      "permissions": [
        { "role": "admin", "actions": [ "execute" ] }
      ],
      "graphql": {
        "operation": "query"
      }
    }
  }
}

--permissions

Define pares role→actions. Use sinalizadores repetidos para várias funções.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --permissions "authenticated:create,read,update,delete"

Configuração resultante

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] },
        { "role": "authenticated", "actions": [ "create", "read", "update", "delete" ] }
      ]
    }
  }
}

--policy-database

Política no nível do banco de dados.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --policy-database "region eq 'US'"

Configuração resultante

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "policies": {
        "database": "region eq 'US'"
      }
    }
  }
}

--policy-request

Política no nível da solicitação.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --policy-request "@claims.role == 'admin'"

Configuração resultante

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "policies": {
        "request": "@claims.role == 'admin'"
      }
    }
  }
}

--rest

Controlar a exposição rest.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --rest BooksApi

Configuração resultante

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "rest": {
        "path": "BooksApi"
      }
    }
  }
}

--rest.methods

Somente procedimentos armazenados. Verbos HTTP permitidos para execução. O padrão é POST. Ignorado para tabelas/exibições.

Example

dab add BookProc --source dbo.MyProc --source.type stored-procedure --permissions "admin:execute" --rest true --rest.methods GET,POST

Configuração resultante

{
  "entities": {
    "BookProc": {
      "source": { "type": "stored-procedure", "object": "dbo.MyProc" },
      "permissions": [
        { "role": "admin", "actions": [ "execute" ] }
      ],
      "rest": {
        "path": "BookProc",
        "methods": [ "GET", "POST" ]
      }
    }
  }
}

-s, --source

Obrigatório Nome do objeto de banco de dados: tabela, exibição ou procedimento armazenado.

Example

dab add Book --source dbo.Books --permissions "anonymous:read"

Configuração resultante

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ]
    }
  }
}

--source.key-fields

Necessário para exibições. Também é necessário para tabelas sem um PK inferível. Não permitido para procedimentos armazenados.

Example

dab add BookView --source dbo.MyView --source.type view --source.key-fields "id,region" --permissions "anonymous:read"

Configuração resultante

{
  "entities": {
    "BookView": {
      "source": {
        "type": "view",
        "object": "dbo.MyView",
        "keyFields": [ "id", "region" ]
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ]
    }
  }
}

--source.params

Somente procedimentos armazenados. Pares separados por vírgulas name:value . Não permitido para tabelas ou exibições.

Example

dab add BookProc --source dbo.MyProc --source.type stored-procedure --source.params "year:2024,active:true" --permissions "admin:execute"

Configuração resultante

{
  "entities": {
    "BookProc": {
      "source": {
        "type": "stored-procedure",
        "object": "dbo.MyProc",
        "params": {
          "year": 2024,
          "active": true
        }
      },
      "permissions": [
        { "role": "admin", "actions": [ "execute" ] }
      ]
    }
  }
}

--source.type

Tipo de objeto de banco de dados. Padrão: table.

Example

dab add Book --source dbo.Books --source.type table --permissions "anonymous:read"

Configuração resultante

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ]
    }
  }
}