对 Blocklet 而言,AFS 是公开数据边界:路径、操作与声明的能力。Provider 内部可用文件、SQLite、对象存储或远程服务。那不是应用契约。
本页覆盖 Blocklet 侧集成。核心 AFS 操作与 provider 编写见 AFS 文档板。
Blocklet 如何对接 AFS
| 机制 | 声明位置 | 角色 |
|---|---|---|
| Package 文件只读树 | 构建进 dist/.afs/manifest.json | 静态 package 资产可寻址 |
mounts | blocklet.yaml | 在绝对 target 挂接 provider |
seed/ | package 目录 + 可选 instance.seed | instance 数据首次初始化 |
replicated | blocklet.yaml | 集合所有权/复制契约 |
sites.bindings | blocklet.yaml | HTTP 路径 → AFS 路径 + AUP 页 |
networkRead | blocklet.yaml | 允许对选定 /instance/** 的网络源读取 |
index | blocklet.yaml | 在声明路径上建索引域 |
Package 树 vs /instance
| 路径族 | 含义 |
|---|---|
Package 根 / /packages 投影 | 某版本下不可变的应用资产 |
/instance | package 需要时的 instance 作用域数据空间 |
/user / 调用者叠加 | scope 与 session 模型需要时的用户数据 |
arc blocklet build 会报告 instance 姿态:
# basic
instance: stateless
# minimal-app
instance: requires /instance DID Space规则:
- package 需要
/instance且未绑定真实 DID Space 时,有状态能力必须 fail closed——不要把 seed 文件冒充活 instance space。 seed/是初始化输入,不是首次运行后的绑定 instance DID Space 替代品。- 静态或壳页面本地 HTTP 200 不证明
/instance写入成功。
Mounts
只声明 package 使用的 provider:
mounts:
- uri: "ash://"
target: /ash
required: truearc blocklet dev ./demo-min
# Mount: agents/app-agent → /agents/app-agent
# Mount: pages → /pagesSeed 与 settings
完整 app recipe 会生成 seed/settings/…。把它们当作 instance 初始化的 package 默认值。改 seed 改 package;改线上 instance 设置改 instance 数据。
Replicated 集合(参考形态)
Discuss Kit 在 replicated: 下声明 posts/comments/anon 等集合。这是复制型讨论数据的参考实现——不是旧产品全量平台化的证明。
见 Discuss Kit 谱系。只读参考 ARC 树中的 blocklets/discuss-kit/blocklet.yaml。
绑定:URL → AFS → 页面
sites:
- name: discuss-kit
domains:
- discuss-kit.localhost
bindings:
- id: posts-list
path: "/posts"
afs: "/instance/app/content/posts"
page: index纯 Web Device 静态站优先 .route/web + pages/,见 构建第一个站点。
继续读 AFS 板
| 需要 | AFS 页 |
|---|---|
| 操作与能力边界 | 核心契约 |
| list vs query vs search | 搜索与查询 |
| Provider 编写 | 编写 provider |
| 本地检查命令 | 本地检查 |
硬边界
| 做 | 不做 |
|---|---|
| 经 AFS 路径寻址数据 | 把特定 SQL schema 当公开 API |
| 声明 package 需要的 mount | 不理解 scope 就挂 host 全局路径 |
明确标注依赖 /instance 的功能 | 声称仅 seed 即可证明多用户 instance 数据 |
| 操作目录链到 AFS 板 | 在本板复制完整 AFS op 参考 |