Files

82 lines
3.5 KiB
Markdown

# POSIX Structure
Note: regenerate the external filetree link if you want the hosted visual tree to reflect the new `.cbor` and `.jsonc` paths.
``` markdown
Personal or Organization (server)/
├── settings.cbor
├── catalog/
│ ├── packs/
│ │ └── pack-<slug>/
│ │ ├── manifest.jsonc
│ │ └── entries/
│ │ └── app-<slug>/
│ │ └── manifest.jsonc
│ └── standalone/
│ └── app-<slug>/
│ └── manifest.jsonc
├── departments/
│ └── department-<slug>/
│ ├── settings.cbor
│ ├── users.cbor
│ └── teams/
│ └── team-<slug>/
│ ├── settings.cbor
│ └── users.cbor
├── projects/
│ └── project-<slug>/
│ ├── settings.cbor
│ ├── home.cbor
│ ├── acl.cbor
│ ├── children/
│ │ └── folder-<slug>/
│ │ ├── folder.cbor
│ │ ├── acl.cbor
│ │ └── children/
│ │ └── project-<slug>/
│ │ ├── settings.cbor
│ │ ├── home.cbor
│ │ ├── acl.cbor
│ │ ├── children/
│ │ └── tree/
│ └── tree/
│ ├── item-<slug>/
│ │ ├── item.cbor
│ │ ├── schema.json
│ │ └── data.cbor
│ └── folder-<slug>/
│ ├── folder.cbor
│ └── item-<slug>/
│ ├── item.cbor
│ ├── schema.json
│ └── data.cbor
└── users/
├── settings.cbor
├── data.cbor
└── personals/
└── personal-<slug>/
├── layout.cbor
├── settings.cbor
├── home.cbor
└── tree/
```
## File Responsibilities
- `settings.cbor` — Machine-owned metadata and presentation config for the thing, such as display name, icon, description, and simple settings.
- `layout.cbor` — Machine-owned layout configuration for the current server or personal space.
- `home.cbor` — Machine-owned home surface configuration, such as widgets, sections, and how they are arranged.
- `folder.cbor` — Machine-owned metadata for a folder node in a tree.
- `item.cbor` — Machine-owned instance metadata for a created item, including what it is and how it should behave.
- `schema.json` — The structure expected by that item's data.
- `data.cbor` — The machine-owned content or state data for that item.
- `manifest.jsonc` — Human-facing catalog definition metadata, including versioning, description, capabilities, and comments for reusable apps or entries.
- `users.cbor` — Machine-owned user membership or assignment data for departments and teams.
- `acl.cbor` — Machine-owned access control data for projects and folders.
## Format Rules
- Use `*.jsonc` for catalog manifests that may be authored or reviewed by humans.
- Use `*.cbor` for machine-owned POSIX state and metadata files where parse speed, compactness, and backupability matter more than direct editability.
- Keep `schema.json` as JSON so it remains compatible with JSON Schema tooling and validation flows.