FolkJS collaborative canvas with subdomain routing for community spaces
Go to file
Jeff Emmett 46c2a0b035 feat: layered local-first data architecture — encrypted backup, relay persistence, at-rest encryption
Implement the 4-layer data model (device → encrypted backup → shared sync → federated):

- Extract shared encryption-utils from community-store (deriveSpaceKey, AES-256-GCM, rSEN format)
- Encrypt module docs at rest when space has meta.encrypted === true
- Fix relay mode persistence: relay-backup/relay-restore wire protocol + .automerge.enc blob storage
- Add backup store + REST API (PUT/GET/DELETE /api/backup/:space/:docId) with JWT auth
- Add client BackupSyncManager with delta-only push, full restore, auto-backup
- Wire backup stubs in encryptid-bridge to BackupSyncManager
- Add rspace-backups Docker volume
- Create docs/DATA-ARCHITECTURE.md design doc with threat model and data flow diagrams

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 17:09:07 -08:00
backlog chore: add backlog task files (task-77, task-78) 2026-03-02 16:05:24 -08:00
db Add rSplat module — Gaussian splat viewer with x402 gated uploads 2026-02-21 20:55:45 +00:00
docs feat: layered local-first data architecture — encrypted backup, relay persistence, at-rest encryption 2026-03-02 17:09:07 -08:00
lib feat: people online panel — live peer presence on canvas 2026-03-02 16:45:57 -08:00
modules feat: Phase 5 — remove PostgreSQL from rForum, rSpace now fully PG-free 2026-03-02 16:25:26 -08:00
public/.well-known fix: change WebAuthn RP ID from jeffemmett.com to rspace.online 2026-02-18 14:32:57 -07:00
scripts feat: Phase 4 — remove PostgreSQL from 11 modules, switch to Automerge 2026-03-02 15:48:01 -08:00
server feat: layered local-first data architecture — encrypted backup, relay persistence, at-rest encryption 2026-03-02 17:09:07 -08:00
shared feat: layered local-first data architecture — encrypted backup, relay persistence, at-rest encryption 2026-03-02 17:09:07 -08:00
src fix: use server-initiated WebAuthn flow for guardian acceptance and login 2026-03-02 16:34:43 -08:00
types fix: resolve all TypeScript build errors across modules 2026-02-23 19:42:44 -08:00
website feat: people online panel — live peer presence on canvas 2026-03-02 16:45:57 -08:00
.dockerignore fix: make Docker build self-contained with local context 2026-02-16 18:51:24 -07:00
.gitignore refactor: rename module directories to match r-prefixed module IDs 2026-02-28 19:49:26 -08:00
Dockerfile feat: move rApp secrets to Infisical, add seed script 2026-03-01 18:06:21 -08:00
Dockerfile.encryptid fix: add shared/local-first to EncryptID Docker build context 2026-03-02 16:38:18 -08:00
MODULE_SPEC.md docs: add MODULE_SPEC.md with permission model and capabilities 2026-02-17 12:30:14 -07:00
ONTOLOGY.md docs: add rSpace ecosystem ontology 2026-03-02 16:22:13 -08:00
bun.lock feat: add Gnosis Safe + EncryptID passkey wallet abstraction 2026-03-02 12:18:34 -08:00
docker-compose.encryptid.yml feat: admin dashboard with user management and delete capabilities 2026-02-28 22:30:21 -08:00
docker-compose.standalone.yml refactor: rename module directories to match r-prefixed module IDs 2026-02-28 19:49:26 -08:00
docker-compose.yml feat: layered local-first data architecture — encrypted backup, relay persistence, at-rest encryption 2026-03-02 17:09:07 -08:00
entrypoint.sh feat: wire rspace to pull secrets from Infisical at startup 2026-02-23 19:36:27 -08:00
package-lock.json fix: switch all module shell themes from light to dark 2026-02-24 19:42:33 -08:00
package.json feat: add Gnosis Safe + EncryptID passkey wallet abstraction 2026-03-02 12:18:34 -08:00
tsconfig.json fix: resolve all TypeScript build errors across modules 2026-02-23 19:42:44 -08:00
vite.config.ts refactor: rename module directories to match r-prefixed module IDs 2026-02-28 19:49:26 -08:00