内容 API 只是应用所需的最小一部分。这里是其余的部分。
你的信息如何成形。
用十六种内置字段类型定义数据的形态,包括富文本、精确小数、媒体、引用和地理点,可在控制台中或用代码完成。
用引用字段让一个模型指向另一个模型,并在一次查询中跨越读取,关联类型决定访问权限和删除是否沿引用传递。
富文本可在段落之间以任意顺序容纳你自己的模型,内联模型只需定义一次,即可作为字段类型复用,还有类型化列表。
把引用字段声明为模型的层级结构,其记录便构成一棵树,每次读取都会返回记录的路径及其上级。
按语言区域翻译文本和正文字段,回退链逐字段向上查找,严格模式会报告哪些字段没有翻译。
服务器根据读取时传入的上下文和已登录用户所在的分群,决定请求得到记录的哪个版本。包含一个完整示例。
按受众改变整条记录、单个字段或单个正文条目,变体由服务器根据可复用、带优先级的定向规则选出。
用设备、平台、语言区域和登录状态等上下文维度构建受众,也可用服务器在每次请求时评估的基于规则的分群构建。
用可读的键定位记录,并在模型上声明额外的唯一查找键,这样 handle 或 SKU 一次类型化查询就能找到它。
颜色、字体和间距作为令牌保存在项目上并通过 API 提供,因此在运行时读取它们的应用在发布后就会呈现新的品牌。
让内容上线,也能撤回。
在开启发布的模型上,每次保存都会写入一份草稿,而 API 继续提供已发布的版本。控制台会按 API 提供的方式预览草稿。
在启用版本控制的模型上,每次保存都是一个带编号的版本,保留期限由你的套餐决定。还原会新增一个版本,并且可以先通过试运行查看影响。
为记录版本设置发布时间,如果内容需要再下线,还可设置取消发布时间。定时计划在触发前可以更改或取消。
一次上线会在同一个预定时刻发布一批命名的记录版本。失败的条目会被跳过并可重试,整批也可以回滚。
对模型和配置的变更先作为草稿暂存,再一起发行,可以立即或在设定的时间进行,附带破坏性变更的差异对比和回滚。
版本控制、发布和变体按模型开启,默认关闭,所以每个模型只承担其记录所需的工作流。
它如何到达你的应用。
Fóir 根据你的模型生成 GraphQL schema。生产环境提供已发布的 schema,当提交的类型落后于项目时,CLI 检查会让你的构建失败。
读取会传入语言区域、上下文和预览标志。服务器应用语言区域回退,选出变体,并选择草稿或已发布版本。
通过 WebSocket 订阅,以便在记录变化时获知。事件带有变化对象的 id,SDK 的 live 模块会把它们应用到你的查询缓存。
每个密钥为公开或机密类型,并属于一个项目。它拥有你授予的作用域,并可限定到选定的模型和操作,或限定到一个组织。
GraphQL API 默认将已解析的响应缓存 60 秒,当其中包含的记录被写入时就会丢弃缓存。也可以用 CLI 命令手动清除。
一个类型化客户端,为你的应用编写 GraphQL,并按密钥生成类型;还有一个 CLI,用于内容、schema、发布和配置,并提供供脚本使用的 JSON 输出。
请求速率由你的套餐按密钥设定,查询深度、字段数量和别名在查询运行前就受到限制。响应会在标头中报告这些限制。
谁能看到什么、做什么。
由 Fóir 为你的用户托管的登录页面,位于你验证过的登录域名上,带有你项目的名称、徽标和颜色,支持密码、邮件验证码和提供方登录。
你的用户可通过任何发布 OpenID Connect 发现文档的身份提供方登录。你提供它的发现 URL 和你的客户端凭据,由 Fóir 负责完成交换。
在密码之后,要求通行密钥或验证器应用的验证码作为第二步,用于敏感操作之前,或每次登录某个应用时。
角色是你组合而成的一组权限,可授予整个工作区或某一个项目。你的用户的角色按项目在配置或 CLI 中声明。
模型声明谁拥有其记录,每条记录为私有或公开。私有记录可以通过一项可撤销的授权共享给指定的人。
字段可以指明哪些类型的调用方可以读取、哪些可以写入。共有五种类型,由请求携带的凭据决定。
控制台按登录应用列出你的用户在自定义登录域名上持有的会话,并可撤销其中任何一个。其他登录会因令牌被撤销或过期而结束。
谁在何时做了什么,与变更一起记录,持有相应权限的团队成员可在控制台中读取。条目保留 90 天。
你的数据如何与其他所有人的数据分开。
访问规则被编译为 Postgres 行级安全,因此由数据库过滤请求可以读取的内容,应用代码中遗漏的检查不会暴露任何一行。
工作区就是你的账户。每个受管控的行都带有它的 id,表上的策略会先将该 id 与调用方的会话比对,再考虑其他任何条件。
每个项目都有自己的内容、用户、文件、密钥、机密和登录域名。API 密钥只属于一个项目,无法指向另一个项目。
当你的产品有自己的租户时,每个租户就是一个组织。数据库会给每一行标记所属组织,并按它过滤每次读取。
当 Fóir 员工需要查看工作区内部以提供帮助时,由其一位管理员用一次性验证码批准该请求。访问持续一小时,并有记录。
编译这些规则的引擎是开源的,所以你可以自己阅读策略是如何编写的,并自行运行它的测试。
面向代理机构,以及有自己租户的产品。
每位客户获得一个项目,有自己的内容、密钥、用户和登录。一个工作区管理所有项目,受邀的客户只能访问自己的项目。
为你的产品提供自己的租户。你的每位客户就是项目内的一个组织,有自己的成员、用户、数据和限制。
组织可以嵌套到任意深度。上级可读取其下的所有内容,但只能更改自己的行,模型和设置沿树向下继承。
一次调用即可创建带有品牌、设置、第一位成员和限定于它的密钥的组织。运行两次,得到的仍是一个组织。
一个配置文件把预发布和生产声明为命名项目,CLI 每次运行推送到其中之一。除声明的目标地址外,两者保持一致,并会报告偏差。
项目可以从你验证过的域名提供其 API,登录应用也可以从一个域名提供托管登录页面。两者都是可选的,TLS 自动签发。
文件,以及你对它们做的处理。
上传一次文件,就能在任何记录中通过 id 引用它,上传确认时会从图像中读取尺寸和占位图。
每张图像以八种命名尺寸和四种格式提供,在 URL 第一次被请求时渲染,裁剪和焦点按用途设置。
文件有自己的所有者和可见性,公开文件通过普通 URL 提供,私有文件通过会过期的签名链接提供。
每个上传的视频都会生成缩略图、一段简短的动态预览和时长,部分套餐包含自适应 HLS 流媒体。
无需人工参与的工作。
定时计划按 cron 表达式在你指定的时区运行你的某个操作,可以暂停、恢复或手动触发。
钩子会在项目中发生某件事时(例如记录被发布)运行你的某个操作,每次投递都会连同其状态一起保存。
操作是你托管并在 Fóir 注册的 HTTP 端点,Fóir 用签名载荷调用它,重试失败,并记录每次运行。
配额限制某个操作在滚动时间窗口内的运行频率,可按每位已登录用户或更大的共享范围计算,并返回你编写的消息。
前置条件根据调用方的分群成员身份或对输入的规则,决定某个操作是否可以运行,并以你编写的消息拒绝。
为你的操作所用凭据提供的保险库,加密存储,按引用寻址,无需重新部署即可轮换。
向你的用户发送邮件、应用内通知和推送通知,可直接发送或由事件触发,偏好由每位用户按类别和渠道设置。
超越 id 的检索。
对项目中的记录进行关键词搜索,按相关性排序,并限定在调用方有权读取的记录范围内。
Fóir 为你选择启用的模型生成嵌入向量,使记录可以按含义检索、匹配相似记录,或用你自己的向量搜索。
为模型添加地理点字段,即可查询离某个点或另一条记录最近的记录,按距离排序,并可限定半径。
人,以及智能体。
你的团队附加在记录、文件、模型或其他对象上的串联评论,可精确到一个字段或一段文字,带有提及和每个项目的收件箱。
把备注指派给一位团队成员,它就成为任务,带有截止日期、子任务和每人一个队列。处理完备注即标记为已完成。
控制台中的助手,按已登录者自己的权限工作。它的编辑以未保存的更改、草稿或待你批准的请求形式出现。
把备注对话串交给助手进行一次简短的无人值守运行。它会读取项目并在对话串中回复,但不能编辑、发布或删除内容。
把你自己的智能体连接到 Fóir 托管的 MCP 服务器。它在连接者的权限范围内工作,或在所获机密密钥的作用域内工作。
已登录的用户可以就某条记录写备注,并阅读你团队的回复。一个 React 小组件会替你提交备注,项目也可以接收访客反馈。
退出方式,以及扩展。
一条命令即可把项目导出为根据你的模型生成的类型化 Postgres 表,包含外键、你已发布的内容和文件的下载链接。
导出包包含 Postgres 行级安全,规定每个用户可以读取哪些行。由你自己应用。字段权限、API 作用域和写入规则不在其中。
Fóir 不托管你的代码。你把自己托管的函数注册为操作,Fóir 用签名且限定作用域的令牌调用它,重试失败,并记录每次运行。
用你自己的工具扩展控制台。应用是你托管的网页,可嵌入为页面、编辑器标签页、侧边栏或字段编辑器。
模型、API 密钥、钩子、登录提供方以及项目配置的其余部分,都在你提交的一个文件中。推送会暂存一份草稿,发行则将其发布。
创建一个项目,定义一个模型,并通过 API 读回它。