88 lines
2.4 KiB
Markdown
88 lines
2.4 KiB
Markdown
# Source Models
|
|
|
|
The projection system supports two source styles. They solve different social
|
|
problems.
|
|
|
|
## Git-Backed Shared Docs
|
|
|
|
Use this for documents multiple collaborators should edit together:
|
|
|
|
- project specs
|
|
- game design docs
|
|
- agendas
|
|
- operating docs
|
|
- shared research summaries
|
|
|
|
The canonical source is a hosted Git repo in Gitea. Everyone clones, branches,
|
|
commits, pulls, and pushes using normal developer tools. AFFiNE receives a
|
|
read-only projection.
|
|
|
|
Flow:
|
|
|
|
```text
|
|
Gitea repo
|
|
-> collaborator clone/edit/commit/push
|
|
-> projector checkout pull
|
|
-> projection registry
|
|
-> read-only AFFiNE docs
|
|
```
|
|
|
|
Why this is the default for shared work:
|
|
|
|
- Git already solves collaborative text editing.
|
|
- People can use their own editor, diff, review, and branch workflow.
|
|
- File names and directory structure stay visible and portable.
|
|
- AFFiNE stays useful as the shared view and whiteboard layer.
|
|
|
|
## Mounted Personal Vaults
|
|
|
|
Use this when a collaborator wants to share a selected slice of their own
|
|
knowledge base without moving custody into the shared repo:
|
|
|
|
- personal research notes
|
|
- meeting notes
|
|
- private vault excerpts
|
|
- owned reference material
|
|
|
|
The canonical source stays in the person's local vault. Projection is one-way
|
|
into AFFiNE. Even the owning person should treat the AFFiNE copy as derived.
|
|
|
|
Flow:
|
|
|
|
```text
|
|
personal Markdown or Obsidian vault
|
|
-> selected include paths
|
|
-> local mount registry
|
|
-> authenticated projection request
|
|
-> read-only AFFiNE docs
|
|
```
|
|
|
|
Why this exists:
|
|
|
|
- It preserves local custody.
|
|
- It avoids forcing everyone into one giant shared repo.
|
|
- It lets people publish useful slices without adopting a new editor.
|
|
|
|
CLI flow:
|
|
|
|
```sh
|
|
section0-docs auth login
|
|
section0-docs mount add research ~/Documents/Obsidian/Research
|
|
section0-docs mount plan research
|
|
section0-docs mount sync research
|
|
```
|
|
|
|
`mount plan` prints the exact payload before it is sent. `mount status` shows
|
|
the local declaration and the last sync receipt. `mount unmount` removes the
|
|
projected AFFiNE docs for that namespace without touching the source folder.
|
|
|
|
## Choosing Between Them
|
|
|
|
Use Git-backed docs when the document itself is a shared artifact.
|
|
|
|
Use mounted personal vaults when the document is personally owned but useful to
|
|
surface in the collective workspace.
|
|
|
|
If a personal note becomes a shared artifact, copy or adapt the useful content
|
|
into a Git-backed repo and let that shared repo become canonical.
|