Refactor: migrate POSIX scaffolding to CBOR and JSONC
This commit is contained in:
@@ -1,75 +1,81 @@
|
||||
# POSIX Structure
|
||||
|
||||
[Filetree Link](https://tree.nathanfriend.com/?s=(%27optiUs!(%27fancy!Yue~fullPath!fbq~YailingSlash!Yue~rootDot!fbq)~R(%27R%27PJ%20or%20OrganizatiU%20%7Bqrver%7DM*46layout6cNlog7packs7*pack37A2*enYies75W5A_standbUe7WA6HwH30LZ2teamw5teamGL5Z6FwF30LKTC058T5C7XFG5LXKXTXC7XI7I05QG5BN2*8QG5BN6Z04_dN_pJw*pJGlayout2L*KI70%27)~vEiU!%271%27)*%20%200M52_*3-%3Cslug%3E4qttings5**69M*7%2F08VG*V259.jsUA5manifestBQ25*schema25*dCchildrenEersFprojectG305HdepartmentI*YeeJEUbKhome2L*42M%5CnNataQitemRsource!Tacl2UonVfolderW*app37X55YtrZusE_90balqsews0%01wqb_ZYXWVUTRQNMLKJIHGFECBA987654320*)
|
||||
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.json
|
||||
├── layout.json
|
||||
├── settings.cbor
|
||||
├── catalog/
|
||||
│ ├── packs/
|
||||
│ │ └── pack-<slug>/
|
||||
│ │ ├── manifest.json
|
||||
│ │ ├── manifest.jsonc
|
||||
│ │ └── entries/
|
||||
│ │ └── app-<slug>/
|
||||
│ │ └── manifest.json
|
||||
│ │ └── manifest.jsonc
|
||||
│ └── standalone/
|
||||
│ └── app-<slug>/
|
||||
│ └── manifest.json
|
||||
│ └── manifest.jsonc
|
||||
├── departments/
|
||||
│ └── department-<slug>/
|
||||
│ ├── settings.json
|
||||
│ ├── users.json
|
||||
│ ├── settings.cbor
|
||||
│ ├── users.cbor
|
||||
│ └── teams/
|
||||
│ └── team-<slug>/
|
||||
│ ├── settings.json
|
||||
│ └── users.json
|
||||
│ ├── settings.cbor
|
||||
│ └── users.cbor
|
||||
├── projects/
|
||||
│ └── project-<slug>/
|
||||
│ ├── settings.json
|
||||
│ ├── home.json
|
||||
│ ├── acl.json
|
||||
│ ├── settings.cbor
|
||||
│ ├── home.cbor
|
||||
│ ├── acl.cbor
|
||||
│ ├── children/
|
||||
│ │ └── folder-<slug>/
|
||||
│ │ ├── folder.json
|
||||
│ │ ├── acl.json
|
||||
│ │ ├── folder.cbor
|
||||
│ │ ├── acl.cbor
|
||||
│ │ └── children/
|
||||
│ │ └── project-<slug>/
|
||||
│ │ ├── settings.json
|
||||
│ │ ├── home.json
|
||||
│ │ ├── acl.json
|
||||
│ │ ├── settings.cbor
|
||||
│ │ ├── home.cbor
|
||||
│ │ ├── acl.cbor
|
||||
│ │ ├── children/
|
||||
│ │ └── tree/
|
||||
│ └── tree/
|
||||
│ ├── item-<slug>/
|
||||
│ │ ├── item.json
|
||||
│ │ ├── item.cbor
|
||||
│ │ ├── schema.json
|
||||
│ │ └── data.json
|
||||
│ │ └── data.cbor
|
||||
│ └── folder-<slug>/
|
||||
│ ├── folder.json
|
||||
│ ├── folder.cbor
|
||||
│ └── item-<slug>/
|
||||
│ ├── item.json
|
||||
│ ├── item.cbor
|
||||
│ ├── schema.json
|
||||
│ └── data.json
|
||||
│ └── data.cbor
|
||||
└── users/
|
||||
├── settings.json
|
||||
├── data.json
|
||||
├── settings.cbor
|
||||
├── data.cbor
|
||||
└── personals/
|
||||
└── personal-<slug>/
|
||||
├── layout.json
|
||||
├── settings.json
|
||||
├── home.json
|
||||
├── layout.cbor
|
||||
├── settings.cbor
|
||||
├── home.cbor
|
||||
└── tree/
|
||||
```
|
||||
|
||||
## File Responsibilities
|
||||
|
||||
- `settings.json` — Metadata and presentation config for the thing, such as display name, icon, description, and simple settings.
|
||||
- `layout.json` — Layout configuration for the current server or personal space.
|
||||
- `home.json` — Home surface configuration, such as widgets, sections, and how they are arranged.
|
||||
- `folder.json` — Metadata for a folder node in a tree.
|
||||
- `item.json` — Instance metadata for a created item, including what it is and how it should behave.
|
||||
- `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.json` — The actual content or state data for that item.
|
||||
- `manifest.json` — Catalog definition metadata, including versioning, description, and capabilities for reusable apps or entries.
|
||||
- `users.json` — User membership or assignment data for departments and teams.
|
||||
- `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.
|
||||
|
||||
@@ -63,11 +63,11 @@
|
||||
- [ ] POSIX-Lite-File-Persistence-Foundation
|
||||
- [ ] Mounted-Storage-Root-Config
|
||||
- [ ] Project-Folder-Creation-On-Backend
|
||||
- [ ] moku.project.json
|
||||
- [ ] manifest.jsonc
|
||||
- [ ] Item-Folder-Creation
|
||||
- [ ] item.json
|
||||
- [ ] item.cbor
|
||||
- [ ] schema.json
|
||||
- [ ] data.json
|
||||
- [ ] data.cbor
|
||||
- [ ] DB-To-Files-Write-Flow
|
||||
- [ ] User-and-Workspace-Domain-Readiness
|
||||
- [ ] Base-Workspace
|
||||
|
||||
Reference in New Issue
Block a user