TiddlyWiki / TiddlyWiki/MultiWikiServer
Drafts are not private
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 60
- Forks
- 16
- PR merge metrics
- No merged PRs in 30d
Description
Both in MWS and vanilla TiddlyWiki on Node.js, draft tiddlers created by one user are visible to other users. This does not match user expectations for other applications, where drafts are private until published.
There is a significant privacy impact. An illustrative scenario is that I want to copy a redacted version of a private email into a tiddler. I copy the entire text of the email and enter it into a new tiddler. Then I go through it, replacing the private information with [...], and finally click "save" when I am done. The problem is that the entire text of the email will have been synced to the server before I have had a chance to make my redactions.
We did not address this problem in TiddlyWiki on Node.js because there isn't an obvious way to resolve it, and there was little impact given the single user design.
I do think this is a problem we need to resolve for MWS. One possible approach is for users to have their own private bag in which their drafts are stored. This private user bag would be an implicit even-more-topmost bag in every recipe. The semantics of writing a tiddler would become more complex: tiddlers that are caught by a specified filter (such as [is[draft]]) would be stored in the private bag, and all other tiddler writes would be pushed down to the topmost bag. A further subtlety is that users would actually need a private bag for each wiki that they edit.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by mapping how MWS writes draft tiddlers and how recipes and bags determine visibility, comparing this with vanilla TiddlyWiki on Node.js. Evaluate the proposed private user bag and the [is[draft]] filter semantics before choosing an approach. Done means drafts are private to their author for each wiki and are not synced to other users before publication.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- node.js, typescript
- Domain
- backend, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100