PUNNARAJ MUD

draft

Security Model

Separates public publishing from private or encrypted collaboration.

securityencryptionpublishing

Security Model

The public site should never be treated as private storage. The safe model is to separate content into three classes.

Content classes

ClassLocationPublishingNotes
Public MUDcontent/YesReviewed Markdown meant for public or team viewing.
Draft local memoryBrowser local storage or local filesNo until exported/committedUseful for quick capture.
Sensitive memoryEncrypted object storage or private repoNo public plaintextClient-side encryption before upload.

Encryption direction

For encrypted cloud mode, prefer this pattern:

sequenceDiagram
  participant Browser
  participant PagesFn as Cloudflare Pages Function
  participant Store as R2/D1 Storage
  Browser->>Browser: Encrypt Markdown with user-held key
  Browser->>PagesFn: Upload ciphertext + metadata
  PagesFn->>Store: Store ciphertext only
  Store-->>PagesFn: Return object id
  PagesFn-->>Browser: Confirm save

The server should not receive plaintext or long-lived decryption keys.

Browser Workspace

Create, update, import, delete, and export local Markdown drafts. Drafts stay in this browser until exported and committed.

Local drafts