init 命令

初始化新的数据 API 生成器配置文件。 生成的 JSON 捕获数据源详细信息、已启用的终结点(REST、GraphQL、MCP)、身份验证和运行时行为。

Syntax

dab init [options]

如果目标配置文件已存在,则命令将覆盖该文件。 没有合并。 如果需要保留以前的文件,请使用版本控制或备份。

快速浏览

选项 概要
-c, --config 输出配置文件名称(默认 dab-config.json)

Authentication

选项 概要
--auth.audience JWT 受众声明
--auth.issuer JWT 颁发者声明
--auth.provider 标识提供者(默认 StaticWebApps)

数据源

选项 概要
--connection-string 数据库连接字符串 (支持 @env()
--cosmosdb_nosql-container Cosmos DB NoSQL 容器名称(可选)
--cosmosdb_nosql-database Cosmos DB NoSQL 数据库名称(cosmosdb_nosql必需)
--database-type 数据库类型:mssql、、postgresqlmysqlcosmosdb_postgresqlcosmosdb_nosql
--set-session-context 启用 SQL Server 会话上下文(仅 mssql)

GraphQL

选项 概要
--graphql.disabled 已弃用。 禁用 GraphQL (使用 --graphql.enabled false
--graphql.enabled 启用 GraphQL (默认值为 true)
--graphql.multiple-create.enabled 允许多个创建突变(默认 false)
--graphql.path GraphQL 终结点前缀(默认 /graphql)
--graphql-schema GraphQL 架构的路径(cosmosdb_nosql必需)

主机和身份验证

选项 概要
--host-mode 主机模式:开发或生产(默认生产)
--cors-origin 允许的源列表(逗号分隔)
--runtime.base-route 所有终结点的全局前缀

MCP

选项 概要
--mcp.disabled 已弃用。 禁用 MCP (使用 --mcp.enabled false
--mcp.enabled 启用 MCP (默认值为 true)
--mcp.path MCP 终结点前缀(默认 /mcp)

注释

MCP 功能将成为版本 1.7 的一部分。

REST

选项 概要
--rest.disabled 已弃用。 禁用 REST (使用 --rest.enabled false
--rest.enabled 启用 REST(默认值为 true,首选 --rest.disabled
--rest.path REST 终结点前缀(默认 /api,为cosmosdb_nosql忽略)
--rest.request-body-strict 强制实施严格的请求正文验证(默认为 true,对于cosmosdb_nosql忽略)

重要

不要在同一命令中混合同一子系统的新 --*.enabled 标志和旧 --*.disabled 标志。 --*.enabled首选模式;--rest.disabled选项--graphql.disabled--mcp.disabled选项日志警告,并将在未来版本中删除。

-c, --config

输出配置文件名称。 默认值为 dab-config.json

Example

dab init --database-type mssql --config dab-config.local.json

生成的配置

{
  "data-source": {
    "database-type": "mssql",
    "connection-string": "@env('MSSQL_CONNECTION_STRING')"
  }
}

--auth.audience

JWT 受众声明。

Example

dab init --database-type mssql --auth.audience "https://example.com/api"

生成的配置

{
  "runtime": {
    "authentication": {
      "audience": "https://example.com/api"
    }
  }
}

--auth.issuer

JWT 颁发者声明。

Example

dab init --database-type mssql --auth.issuer "https://login.microsoftonline.com/{tenant-id}/v2.0"

生成的配置

{
  "runtime": {
    "authentication": {
      "issuer": "https://login.microsoftonline.com/{tenant-id}/v2.0"
    }
  }
}

--auth.provider

标识提供者。 默认值为 StaticWebApps

Example

dab init --database-type mssql --auth.provider AzureAD

生成的配置

{
  "runtime": {
    "authentication": {
      "provider": "AzureAD"
    }
  }
}

--connection-string

数据库连接字符串。 支持 @env()

Example

dab init --database-type mssql --connection-string "@env('MSSQL_CONNECTION_STRING')"

生成的配置

{
  "data-source": {
    "connection-string": "@env('MSSQL_CONNECTION_STRING')"
  }
}

--cors-origin

允许的源的逗号分隔列表。

Example

dab init --database-type mssql --cors-origin "https://app.example.com,https://admin.example.com"

生成的配置

{
  "runtime": {
    "cors": {
      "origins": [ "https://app.example.com", "https://admin.example.com" ]
    }
  }
}

--cosmosdb_nosql-container

Cosmos DB NoSQL 容器名称。

Example

dab init --database-type cosmosdb_nosql --cosmosdb_nosql-container MyContainer

生成的配置

{
  "data-source": {
    "database-type": "cosmosdb_nosql",
    "options": {
      "container": "MyContainer"
    }
  }
}

--cosmosdb_nosql-database

Cosmos DB NoSQL 数据库名称。 必需 。cosmosdb_nosql

Example

dab init --database-type cosmosdb_nosql --cosmosdb_nosql-database MyDb

生成的配置

{
  "data-source": {
    "database-type": "cosmosdb_nosql",
    "options": {
      "database": "MyDb"
    }
  }
}

--database-type

指定目标数据库引擎。 支持的值:mssqlmysqlpostgresqlcosmosdb_postgresqlcosmosdb_nosql

Example

dab init --database-type mssql

生成的配置

{
  "data-source": {
    "database-type": "mssql"
  }
}

--graphql.disabled

已弃用。 禁用 GraphQL。 首选 --graphql.enabled false

--graphql.enabled

启用 GraphQL 终结点。 默认值为 true

Example

dab init --database-type mssql --graphql.enabled false

生成的配置

{
  "runtime": {
    "graphql": {
      "enabled": false
    }
  }
}

--graphql.multiple-create.enabled

允许在单个突变中创建多行。 默认值为 false

Example

dab init --database-type mssql --graphql.multiple-create.enabled true

生成的配置

{
  "runtime": {
    "graphql": {
      "multiple-create": { "enabled": true }
    }
  }
}

--graphql.path

GraphQL 终结点前缀。 默认值为 /graphql

Example

dab init --database-type mssql --graphql.path /gql

生成的配置

{
  "runtime": {
    "graphql": {
      "path": "/gql"
    }
  }
}

--graphql-schema

GraphQL 架构文件的路径。 必需 。cosmosdb_nosql

Example

dab init --database-type cosmosdb_nosql --graphql-schema ./schema.gql

生成的配置

{
  "runtime": {
    "graphql": {
      "schema": "./schema.gql"
    }
  }
}

--host-mode

主机模式。 默认值为 Production

有效值:DevelopmentProduction

Example

dab init --database-type mssql --host-mode development

生成的配置

{
  "runtime": {
    "host": {
      "mode": "development"
    }
  }
}

--mcp.disabled

已弃用。 禁用 MCP。 首选 --mcp.enabled false

--mcp.enabled

启用 MCP 终结点。 默认值为 true

Example

dab init --database-type mssql --mcp.enabled false

生成的配置

{
  "runtime": {
    "mcp": {
      "enabled": false
    }
  }
}

--mcp.path

MCP 终结点前缀。 默认值为 /mcp

Example

dab init --database-type mssql --mcp.path /model

生成的配置

{
  "runtime": {
    "mcp": {
      "path": "/model"
    }
  }
}

--rest.disabled

已弃用。 禁用 REST。 首选 --rest.enabled false

--rest.enabled

启用 REST 终结点。 默认值为 true

Example

dab init --database-type mssql --rest.enabled false

生成的配置

{
  "runtime": {
    "rest": {
      "enabled": false
    }
  }
}

--rest.path

REST 终结点前缀。 默认值为 /api

注释

已忽略 。cosmosdb_nosql

Example

dab init --database-type mssql --rest.path /rest

生成的配置

{
  "runtime": {
    "rest": {
      "path": "/rest"
    }
  }
}

--rest.request-body-strict

控制处理请求正文中的额外字段。 默认值为 true

  • true:拒绝多余的字段(HTTP 400)。
  • false:忽略其他字段。

注释

已忽略 。cosmosdb_nosql

Example

dab init --database-type mssql --rest.request-body-strict false

生成的配置

{
  "runtime": {
    "rest": {
      "request-body-strict": false
    }
  }
}

--runtime.base-route

前面追加到所有终结点的全局前缀。 必须以 /.

Example

dab init --database-type mssql --runtime.base-route /v1

生成的配置

{
  "runtime": {
    "base-route": "/v1"
  }
}

--set-session-context

允许使用会话上下文将数据发送到 SQL Server。 仅对 mssql. 默认值为 false

Example

dab init --database-type mssql --set-session-context true

生成的配置

{
  "runtime": {
    "mssql": {
      "set-session-context": true
    }
  }
}