SuperAPI AI 工具集

dab-rest-and-graphql

编程与开发

查看项目

更新于 10-16 00:31

技能介绍

用途:界定 Azure SQL Database 上 Data API builder 2.0 配置实际对外发布的 API 面,包括每个实体暴露什么、哪个角色继承后能访问、返回哪些行、以及无密码连接串。不负责首次跑通端点。

关键点:dab init 默认写入 "provider": "Unauthenticated" 与 "mode": "production",所有请求按匿名评估;角色向上继承(named → authenticated → anonymous),一处 anonymous:read 即对所有角色可读;实体可由 autoentities 模式生成,模式是 T-SQL LIKE 而非正则,默认 include 为 %.%,即所有 schema 所有对象;mcp.enabled 默认 true,会以同一实体与权限额外发布 /mcp 端点。

用法:初始化时即指定 provider,例如 dab init --database-type mssql --connection-string "@env('SQL_CONNECTION_STRING')" --auth.provider EntraID --auth.audience "<application-id-uri>" --auth.issuer "https://login.microsoftonline.com/<tenant-id>/v2.0";连接串支持 @env('NAME') 与 @akv('secret-name')。手写实体用 dab add Book --source dbo.books --source.type table --permissions "authenticated:read";模式生成用 dab auto-config,注意 include/exclude 写法 schema.object。关系、视图、存储过程仍需手写,视图需标记主键且不支持关系。行级过滤用数据库策略,如 --policy-database "@item.ownerId eq @claims.oid",仅支持 read/update/delete,create 与 execute 不支持且 CLI 会静默接受。云端用 Authentication=Active Directory Default 的无密码连接串,并为身份授予最小权限(CREATE USER ... FROM EXTERNAL PROVIDER 与 db_datareader/db_datawriter)。

验证:dab validate 返回 0 表示通过;dab auto-config-simulate --output matched.csv 可逐行核对匹配对象;dab configure --show-effective-permissions 查看实际生效权限。限制:2.0 的 auto-config 仅覆盖 Microsoft SQL 数据源的表;dab validate 不展开模式,模式过宽不会报错;不要用正则写模式,不要省略 include,不要依赖匿名再收紧。具体版本行为以实测与公开文档为准。