82 lines
3.5 KiB
Markdown
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.
|