跳到主要内容

类型

Blocklet Server Client API 利用各种 GraphQL 类型来构建查询和变更的数据结构。本节为整个 API 中使用的所有数据类型、输入对象、枚举和标量提供了全面的参考。理解这些类型对于构建有效的请求和解释来自 Blocklet Server 的响应至关重要。

标量类型

标量类型代表 GraphQL 查询的叶子节点。它们是原始值,如字符串、数字或布尔值。

标量描述
String表示文本数据,以 UTF-8 字符序列表示。
Boolean表示 truefalse
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 当前的生命周期状态。

描述
addedBlocklet 已添加但尚未下载。
downloadingBlocklet 正在下载中。
downloadedBlocklet 已成功下载。
installingBlocklet 正在安装中。
installedBlocklet 已安装但未运行。
startingBlocklet 正在启动中。
runningBlocklet 当前正在运行。
stoppingBlocklet 正在停止中。
stoppedBlocklet 已停止。
errorBlocklet 的生命周期中发生错误。
upgradingBlocklet 正在升级中。
restartingBlocklet 正在重启。
corruptedBlocklet 安装已损坏。
waitingBlocklet 正在等待依赖项或资源。
deletedBlocklet 已被删除。
unknownBlocklet 的状态未知。

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 发送者的类型。

描述
slackSlack 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')。