Blocklet Server Client API 利用各种 GraphQL 类型来构建查询和变更的数据结构。本节为整个 API 中使用的所有数据类型、输入对象、枚举和标量提供了全面的参考。理解这些类型对于构建有效的请求和解释来自 Blocklet Server 的响应至关重要。
标量类型
标量类型代表 GraphQL 查询的叶子节点。它们是原始值,如字符串、数字或布尔值。
| 标量 | 描述 |
|---|---|
String | 表示文本数据,以 UTF-8 字符序列表示。 |
Boolean | 表示 true 或 false。 |
Int | 表示有符号的 32 位整数。 |
Float | 表示有符号的双精度浮点值。 |
ID | 表示唯一标识符,通常用于重新获取对象或作为缓存的键。 |
Any | 表示任何与 JSON 兼容的值。 |
Bytes | 表示字节数组。 |
Int32 | 表示 32 位有符号整数。 |
Uint32 | 表示 32 位无符号整数。 |
Int64 | 表示 64 位有符号整数。 |
Uint64 | 表示 64 位无符号整数。 |
Float32 | 表示 32 位浮点数。 |
Upload | 表示文件上传,通常用于变更操作。 |
枚举类型
枚举是一种特殊的标量,其值被限制在一组特定的允许值中。
BackendServiceType
定义路由规则指向的后端服务类型。
| 值 | 描述 |
|---|---|
daemon | 服务是节点守护进程本身。 |
blocklet | 服务是正在运行的 blocklet。 |
redirect | 该规则执行 HTTP 重定向。 |
none | 未配置后端服务。 |
general_proxy | 该规则作为通用代理,指向指定的 URL。 |
direct_response | 该规则返回直接的静态响应。 |
rewrite | 该规则重写请求路径。 |
component | 服务是 blocklet 中的特定组件。 |
BackupTo
指定 blocklet 备份的目标位置。
| 值 | 描述 |
|---|---|
spaces | 备份到去中心化存储空间。 |
disk | 备份到本地磁盘。 |
BlockletSource
指示 blocklet 安装的来源。
| 值 | 描述 |
|---|---|
registry | 从 blocklet 注册表/商店安装。 |
local | 从本地目录安装。 |
upload | 从上传的文件安装。 |
url | 从直接的 URL 安装。 |
custom | 通过自定义或未知方法安装。 |
BlockletStatus
表示 blocklet 当前的生命周期状态。
| 值 | 描述 |
|---|---|
added | Blocklet 已添加但尚未下载。 |
downloading | Blocklet 正在下载中。 |
downloaded | Blocklet 已成功下载。 |
installing | Blocklet 正在安装中。 |
installed | Blocklet 已安装但未运行。 |
starting | Blocklet 正在启动中。 |
running | Blocklet 当前正在运行。 |
stopping | Blocklet 正在停止中。 |
stopped | Blocklet 已停止。 |
error | Blocklet 的生命周期中发生错误。 |
upgrading | Blocklet 正在升级中。 |
restarting | Blocklet 正在重启。 |
corrupted | Blocklet 安装已损坏。 |
waiting | Blocklet 正在等待依赖项或资源。 |
deleted | Blocklet 已被删除。 |
unknown | Blocklet 的状态未知。 |
HeaderMatchType
定义路由规则中 HTTP 标头的匹配策略。
| 值 | 描述 |
|---|---|
exact | 标头值必须完全匹配。 |
partial | 标头值必须包含指定的字符串。 |
regexp | 标头值必须匹配指定的正则表达式。 |
Notification_NotificationSeverity
定义通知的严重级别。
| 值 | 描述 |
|---|---|
info | 信息性消息。 |
success | 表示操作成功。 |
error | 表示发生了错误。 |
warning | 表示潜在问题或警告。 |
Notification_NotificationSource
指定通知的来源。
| 值 | 描述 |
|---|---|
system | 通知源自系统/节点。 |
component | 通知源自 blocklet 组件。 |
Notification_NotificationType
定义通知的类型或类别。
| 值 | 描述 |
|---|---|
notification | 标准通知消息。 |
connect | 与 DID Connect 相关的通知。 |
feed | 动态更新。 |
hi | 简单的问候或测试通知。 |
passthrough | 不经特殊处理直接传递的通知。 |
NotificationActivity_ActivityTypeEnum
为动态类通知定义用户活动类型。
| 值 | 描述 |
|---|---|
comment | 用户发表了评论。 |
like | 用户点赞了某个项目。 |
follow | 用户关注了另一个用户或项目。 |
tips | 用户发送了小费。 |
mention | 用户被提及。 |
assign | 用户被分配了任务。 |
un_assign | 用户被取消了任务分配。 |
NotificationAttachmentType
定义通知中包含的附件类型。
| 值 | 描述 |
|---|---|
asset | 数字资产。 |
vc | 可验证凭证。 |
token | 数字通证。 |
text | 纯文本附件。 |
image | 图片附件。 |
divider | 用于格式化的视觉分隔符。 |
transaction | 交易记录。 |
dapp | 去中心化应用链接。 |
link | 超链接。 |
section | 格式化的内容块。 |
PublishType
指定正在发布的工件类型。
| 值 | 描述 |
|---|---|
resource | 单个资源文件。 |
pack | 打包的 blocklet 束。 |
ReleaseStatus
指示发布项目中某个版本的状态。
| 值 | 描述 |
|---|---|
draft | 该版本是草稿,尚未发布。 |
published | 该版本已发布。 |
SenderType
定义 webhook 发送者的类型。
| 值 | 描述 |
|---|---|
slack | Slack webhook。 |
api | 通用 API webhook。 |
StatusCode
表示 API 响应的状态码。
| 值 | 描述 |
|---|---|
ok | 请求成功。 |
blocklet_not_found | 请求的 blocklet 未找到。 |
blocklet_not_purchased | 请求的 blocklet 尚未购买。 |
forbidden | 因权限不足,请求被禁止。 |
internal | 发生内部服务器错误。 |
timeout | 请求超时。 |
输入对象
输入对象是复杂的类型,用作变更和查询的参数,允许您在单个参数中传递结构化数据。
AigneConfigInput
AI 网关 (Aigne) 的配置。
- provider
String— AI 服务提供商(例如 'openai')。 - model
String— 要使用的具体模型(例如 'gpt-4')。 - key
String— 服务的 API 密钥。 - url
String— API 端点的基础 URL。 - accessKeyId
String— 访问密钥 ID,适用于 AWS 等提供商。 - secretAccessKey
String— 秘密访问密钥,适用于 AWS 等提供商。 - validationResult
String— 上次连接验证的结果。
AutoBackupInput
自动备份的配置。
- enabled
Boolean— 是否启用自动备份。
AutoBlockPolicyInput
自动 IP 拦截策略的配置。
- enabled
Boolean— 是否启用自动拦截。 - windowSize
Uint32— 监控请求的时间窗口(秒)。 - windowQuota
Uint32— 时间窗口内允许的最大请求数。 - blockDuration
Uint32— 超过配额后拦截 IP 的持续时间(秒)。 - statusCodes
[Uint32!]— 用于考虑进行拦截的 HTTP 状态码列表。
AutoCheckUpdateInput
自动更新检查的配置。
- enabled
Boolean— 是否启用自动更新检查。
BaseUserInfoInput
用于各种输入类型的基本用户信息。
- did
String— 用户的去中心化标识符 (DID)。 - pk
String— 用户的公钥。 - role
String— 用户的角色。 - avatar
String— 用户头像图片的 URL。 - fullName
String— 用户的全名。 - email
String— 用户的电子邮件地址。 - approved
Boolean— 用户是否已获批准。 - createdAt
Uint32— 用户创建时的时间戳。 - updatedAt
Uint32— 用户个人资料最后更新的时间戳。 - locale
String— 用户的首选区域设置(例如 'en')。
BlockPolicyInput
IP 拦截策略的配置。
- enabled
Boolean— 是否启用拦截策略。 - blacklist
[String!]— 永久拦截的 IP 地址列表。 - autoBlocking
AutoBlockPolicyInput— 自动 IP 拦截的配置。
BlockletAccessPolicyInput
定义 blocklet 访问策略。
- id
String— 策略的唯一标识符。 - name
String— 策略的描述性名称。 - description
String— 策略的详细描述。 - roles
Any— 此策略适用的角色。 - reverse
Boolean— 如果为 true,则策略逻辑反转(拒绝而非允许)。 - isProtected
Boolean— 如果为 true,则该策略不能轻易修改或删除。
BlockletAccessPolicyQueryInput
用于查询 BlockletAccessPolicy 对象的输入。
- search
String— 用于按名称或描述筛选策略的搜索字符串。
BlockletDistInput
描述 blocklet 的分发文件。
- tarball
String— blocklet 的 tarball 文件的 URL。 - integrity
String— 用于验证的 tarball 的完整性哈希值。
BlockletDockerInput
为 blocklet 定义 Docker 相关设置。
- dockerImage
String— 要使用的 Docker 镜像的名称。 - dockerArgs
[DockerRunKeyValuePairInput!]— 传递给 docker run 命令的参数。 - dockerEnvs
[DockerEnvKeyValuePairInput!]— 在容器中设置的环境变量。 - dockerCommand
String— 在容器内执行的命令。
BlockletGatewayInput
blocklet 网关设置的配置。
- requestLimit
RequestLimitInput— 请求限制配置。 - blockPolicy
BlockPolicyInput— IP 拦截策略配置。 - proxyPolicy
ProxyPolicyInput— 代理策略配置。 - cacheEnabled
Boolean— 是否在网关启用缓存。 - wafPolicy
WAFPolicyInput— Web 应用程序防火墙策略配置。 - teamDid
String— 与此配置关联的团队的 DID。
BlockletResponseHeaderPolicyInput
定义响应头策略。
- id
String— 策略的唯一标识符。 - name
String— 策略的描述性名称。 - description
String— 策略的详细描述。 - securityHeader
String— 与安全相关的头的 JSON 字符串。 - cors
String— CORS 头的 JSON 字符串。 - customHeader
String— 要添加的自定义头的 JSON 字符串。 - removeHeader
String— 要移除的头的 JSON 字符串。 - isProtected
Boolean— 如果为 true,则该策略不能轻易修改或删除。
BlockletResponseHeaderPolicyQueryInput
用于查询 BlockletResponseHeaderPolicy 对象的输入。
- search
String— 用于按名称或描述筛选策略的搜索字符串。
BlockletSecurityRuleInput
为特定路径定义一个结合了访问和头策略的安全规则。
- id
String— 规则的唯一标识符。 - pathPattern
String— 此规则适用的 URL 路径模式。 - componentDid
String— 与此规则关联的组件的 DID。 - priority
Uint32— 规则的执行优先级(数字越小越先执行)。 - responseHeaderPolicyId
String— 要应用的响应头策略的 ID。 - accessPolicyId
String— 要应用的访问策略的 ID。 - enabled
Boolean— 规则当前是否激活。 - remark
String— 关于规则的可选备注或说明。 - accessPolicy
BlockletAccessPolicyInput— 完整的访问策略对象(在创建新规则时使用)。 - responseHeaderPolicy
BlockletResponseHeaderPolicyInput— 完整的响应头策略对象(在创建新规则时使用)。
BlockletSecurityRuleQueryInput
用于查询 BlockletSecurityRule 对象的输入。
- search
String— 用于按路径模式或备注筛选规则的搜索字符串。
BlockletStoreInput
表示一个 blocklet 商店/注册表。
- name
String— 商店的名称。 - description
String— 商店的描述。 - url
String— 商店的 URL。 - logoUrl
String— 商店标志的 URL。 - maintainer
String— 商店的维护者。 - cdnUrl
String— 商店使用的 CDN URL。 - protected
Boolean— 商店是否需要身份验证。 - id
String— 商店的唯一标识符。 - scope
String— 商店的范围(例如 'public', 'private')。
ConfigEntryInput
表示单个配置键值对。
- key
String— 配置键。 - value
String— 配置值。 - required
Boolean— 此配置是否为必需项。 - description
String— 配置项的描述。 - validation
String— 值的验证规则或模式。 - secure
Boolean— 如果为 true,则该值为敏感信息,应作为机密处理。 - custom
Boolean— 如果为 true,则这是用户自定义的配置。 - shared
Boolean— 如果为 true,则此配置在组件间共享。
ConfigNavigationInput
表示用户界面中的一个导航项。
- id
String— 导航项的唯一 ID。 - title
String— 显示的标题。 - link
String— 目标 URL 或路径。 - icon
String— 导航项的图标。 - section
String— 此项应出现的部分(例如 'sidebar')。 - component
String— 此导航项所属的组件。 - parent
String— 父导航项的 ID(如果有)。 - role
String— 查看此项所需的角色。 - visible
Boolean— 该项是否可见。 - from
String— 此导航配置的来源(例如 'blocklet', 'user')。 - activeIcon
String— 导航项处于活动状态时显示的图标。 - color
String— 导航项文本的颜色。 - activeColor
String— 导航项处于活动状态时的颜色。 - description
String— 导航项的描述。 - private
Boolean— 指示导航项是否为私有。
ConnectedAccountInfoInput
来自第三方提供商的用户账户信息。
- name
String— 提供商提供的用户名。 - picture
String— 用户个人资料图片的 URL。 - email
String— 提供商提供的用户电子邮件。 - emailVerified
Boolean— 电子邮件是否已由提供商验证。 - sub
String— 来自提供商的主体标识符。 - extraData
Any— 来自提供商的任何附加数据。
ConnectedAccountInput
表示用户连接的第三方账户。
- provider
String— 第三方提供商的名称(例如 'github')。 - did
String— 与此连接账户关联的 DID。 - pk
String— 公钥。 - id
String— 连接的唯一 ID。 - lastLoginAt
Uint32— 使用此账户最后一次登录的时间戳。 - userInfo
ConnectedAccountInfoInput— 来自提供商的详细用户信息。 - extra
Any— 任何附加元数据。
DockerEnvKeyValuePairInput
表示 Docker 容器的单个环境变量。
- key
String— 环境变量键。 - value
String— 环境变量值。 - description
String— 变量的描述。 - secure
Boolean— 如果为 true,则该值为敏感信息。 - shared
Boolean— 如果为 true,则该变量是共享的。 - required
Boolean— 如果为 true,则必须设置此变量。 - custom
String— 指示是否为自定义变量。
DockerRunKeyValuePairInput
表示 Docker run 参数的键值对,例如卷挂载或端口映射。
- key
String— 参数键(例如 '-v', '-p')。 - value
String— 参数值。 - path
String— 卷挂载的路径。 - type
String— 参数类型。 - name
String— 参数名称。 - prefix
String— 参数的前缀。 - protocol
String— 端口映射的协议(例如 'tcp')。 - proxyBehavior
String— 定义此参数如何影响代理行为。
DownloadTokenInput
用于下载私有 blocklet 的令牌。
- did
String— 需要令牌的 blocklet 的 DID。 - token
String— 下载令牌。
EnableEventInput
为 webhook 启用特定事件的结构。
- type
String— 事件的类型(例如 'blocklet.started')。 - source
String— 事件的来源。
GatewayInput
用于配置主节点网关的结构。
- requestLimit
RequestLimitInput— 请求限制配置。 - blockPolicy
BlockPolicyInput— IP 拦截策略配置。 - proxyPolicy
ProxyPolicyInput— 代理策略配置。 - cacheEnabled
Boolean— 是否在网关启用缓存。 - wafPolicy
WAFPolicyInput— Web 应用程序防火墙策略配置。
HashFileInput
表示一个文件及其对应的哈希值。
- file
String— 文件的路径。 - hash
String— 文件内容的哈希值。
InviteSettingsInput
用于配置用户邀请设置的结构。
- enabled
Boolean— 是否启用用户邀请。
IssuerInput
表示凭证或护照的发行者。
- id
String— 发行者的 DID。 - name
String— 发行者的名称。 - pk
String— 发行者的公钥。
LoginEmailSettingsInput
基于电子邮件的登录设置结构。
- enabled
Boolean— 是否启用电子邮件登录。 - requireVerified
Boolean— 如果为 true,用户必须验证其电子邮件地址。 - requireUnique
Boolean— 如果为 true,电子邮件地址在所有用户中必须是唯一的。 - trustOauthProviders
Boolean— 如果为 true,则默认信任来自 OAuth 提供商的电子邮件地址。 - enableDomainBlackList
Boolean— 是否使用域名黑名单。 - domainBlackList
[String!]— 要拦截的电子邮件域名列表。 - enableDomainWhiteList
Boolean— 是否使用域名白名单。 - domainWhiteList
[String!]— 允许的电子邮件域名列表。 - trustedIssuers
[IssuerInput!]— 用于电子邮件验证的受信任发行者列表。
LoginPhoneSettingsInput
基于电话的登录设置结构。
- enabled
Boolean— 是否启用电话登录。 - requireVerified
Boolean— 如果为 true,用户必须验证其电话号码。 - requireUnique
Boolean— 如果为 true,电话号码必须是唯一的。 - trustedIssuers
[IssuerInput!]— 用于电话验证的受信任发行者列表。 - enableRegionBlackList
Boolean— 是否使用地区黑名单。 - regionBlackList
[String!]— 被拦截的国家代码列表。 - enableRegionWhiteList
Boolean— 是否使用地区白名单。 - regionWhiteList
[String!]— 允许的国家代码列表。
NodeInfoInput
用于更新节点信息的结构。
- name
String— 节点的显示名称。 - description
String— 节点的描述。 - autoUpgrade
Boolean— 节点是否应自动升级。 - enableWelcomePage
Boolean— 是否显示欢迎页面。 - registerUrl
String— 用户注册的 URL。 - webWalletUrl
String— Web 钱包的 URL。 - blockletRegistryList
[BlockletStoreInput!]— 已配置的 blocklet 注册表列表。 - diskAlertThreshold
Uint32— 触发警报的磁盘使用百分比阈值。 - enableBetaRelease
Boolean— 是否允许安装 beta 版本。 - nftDomainUrl
String— NFT 域名服务的 URL。 - enableFileSystemIsolation
Boolean— 是否隔离 blocklet 文件系统。 - enableDocker
Boolean— 是否为 blocklet 启用 Docker。 - isDockerInstalled
Boolean— 只读字段,指示 Docker 是否已安装。 - enableDockerNetwork
Boolean— 是否启用自定义 Docker 网络。 - enableSessionHardening
Boolean— 是否启用高级会话安全功能。
OauthClientInput
用于创建或更新 OAuth 客户端的结构。
- redirectUris
[String!]— 允许的重定向 URI 数组。 - tokenEndpointAuthMethod
String— 令牌端点的身份验证方法。 - grantTypes
[String!]— 此客户端允许使用的 OAuth 授权类型。 - responseTypes
[String!]— 此客户端允许使用的 OAuth 响应类型。 - clientName
String— 客户端应用程序的名称。 - clientId
String— 客户端的唯一 ID。 - clientSecret
String— 客户端密钥。
PagingInput
分页参数的标准结构。
- page
Uint32— 要检索的页码。 - pageSize
Uint32— 每页的项目数。
PassportDisplayInput
用于定义护照显示方式的结构。
- type
String— 显示类型(例如 'text', 'image')。 - content
String— 要显示的内容。
PermissionInput
用于创建或更新权限的结构。
- name
String— 权限的名称(例如 'user')。 - description
String— 权限允许操作的描述。 - isProtected
Boolean— 如果为 true,则该权限不能轻易修改或删除。
ProxyPolicyInput
用于配置代理行为的结构。
- enabled
Boolean— 是否启用代理策略。 - trustRecursive
Boolean— 是否信任链中的所有代理。 - trustedProxies
[String!]— 受信任的代理 IP 地址列表。 - realIpHeader
String— 用于识别真实客户端 IP 的 HTTP 标头。
RequestLimitInput
用于配置请求速率限制的结构。
- enabled
Boolean— 是否启用速率限制。 - global
Uint32— 全局请求限制。 - rate
Uint32— 每个时间单位的请求数。 - methods
[String!]— 此限制适用的 HTTP 方法。
RoleUpdateInput
用于更新用户角色的结构。
- name
String— 角色的唯一名称。 - title
String— 角色的可读标题。 - description
String— 角色的描述。 - extra
String— 角色的额外元数据,以 JSON 格式表示。
RoutingRuleInput
用于定义路由规则的结构。
- id
String— 规则的唯一 ID。 - from
RoutingRuleFromInput— 规则的源标准。 - to
RoutingRuleToInput— 规则的目标。 - isProtected
Boolean— 如果为 true,则该规则不能轻易修改或删除。
SessionConfigInput
用于配置用户会话设置的结构。
- cacheTtl
Uint32— 会话缓存的生存时间 (TTL),单位为秒。 - ttl
Uint32— 会话本身的 TTL,单位为秒。 - email
LoginEmailSettingsInput— 电子邮件登录设置。 - phone
LoginPhoneSettingsInput— 电话登录设置。 - salt
String— 用于会话密钥生成的盐值。 - enableBlacklist
Boolean— 是否启用会话黑名单。
TagInput
用于创建或更新标签的结构。
- id
Uint32— 标签的唯一 ID(用于更新)。 - title
String— 标签的标题。 - description
String— 标签的描述。 - color
String— 与标签关联的颜色(十六进制代码)。
UserAddressInput
用户物理地址的结构。
- country
String— 国家。 - province
String— 州或省。 - city
String— 城市。 - postalCode
String— 邮政编码。 - line1
String— 地址的第一行。 - line2
String— 地址的第二行。
UserInfoInput
用户信息的综合结构,用于创建或更新用户。
- did
String— 用户的 DID。 - pk
String— 用户的公钥。 - role
String— 用户分配的角色。 - avatar
String— 用户头像的 URL。 - fullName
String— 用户的全名。 - email
String— 用户的电子邮件地址。 - approved
Boolean— 用户的账户是否已获批准。 - remark
String— 关于用户的管理备注。 - extra
Any— JSON 格式的额外元数据。 - tags
[TagInput!]— 与用户关联的标签列表。 - address
UserAddressInput— 用户的物理地址。
UserQueryInput
用于筛选和查询用户的结构。
- role
String— 按角色筛选用户。 - approved
Boolean— 按批准状态筛选用户。 - search
String— 用于匹配用户字段的搜索词。 - tags
[Uint32!]— 按关联的标签 ID 筛选用户。 - includeTags
Boolean— 是否在响应中包含标签详情。 - includeUserSessions
Boolean— 是否在响应中包含会话详情。
UserSessionQueryInput
用于查询用户会话的结构。
- userDid
String— 按用户 DID 筛选会话。 - visitorId
String— 按访客 ID 筛选会话。 - appPid
String— 按应用程序 PID 筛选会话。 - status
String— 按状态筛选会话(例如 'active')。 - includeUser
Boolean— 是否在响应中包含用户详情。
WAFPolicyInput
Web 应用程序防火墙 (WAF) 配置的结构。
- enabled
Boolean— WAF 是否已启用。 - mode
String— WAF 的操作模式(例如 'detection', 'blocking')。 - inboundAnomalyScoreThreshold
Uint32— 入站流量的异常分数阈值。 - outboundAnomalyScoreThreshold
Uint32— 出站流量的异常分数阈值。 - logLevel
Uint32— WAF 事件的日志记录级别。
WebHookParamInput
用于定义 webhook 参数的结构。
- name
String— 参数的名称。 - description
String— 参数的描述。 - required
Boolean— 参数是否为必需项。 - defaultValue
String— 参数的默认值。 - value
String— 参数的当前值。 - type
String— 参数的数据类型(例如 'string')。
WebhookEndpointStateInput
用于创建或更新 webhook 端点的结构。
- url
String— 将发送 webhook 负载的 URL。 - description
String— webhook 端点的描述。 - enabledEvents
[EnableEventInput!]— 此端点订阅的事件列表。 - status
String— 端点的状态(例如 'enabled', 'disabled')。