Cardo.wiki with node TW5 equal multiuser GTD. Test it out.

115 views
Skip to first unread message

William Armstrong

unread,
Jun 23, 2019, 12:26:19 AM6/23/19
to tiddl...@googlegroups.com
Hello folks, thanks for all the tips and tricks I have been browsing through for the last 2 months.

I have setup a basic TW5 node server, and installed the Cardo.json from cardo.wiki. Adding the credentials option to the node server and readers and writers permisions, I can get effectively multi user logins. I am using HTTPAuth as well from nginx. (Webinoly makesit extremely simple to setup a proxied app, including TW5. I will have to write up a tutorial about that.)

Now, this setup authenticates the user, but what about conveniences. Cardo has these great overall views that are built-in for each person, so normally I would just make that the default tiddler and move on. But that doesn't work in a muli-user environment. My solution is to use the [[All Items]] list as the default,and the user can go from there. (If anyone knows of a way the Author tag can be automatically substituted, I would love to know.)

Now, this is a small wiki with just me and my family. We have only used it for a night or so, so no guarantees. I thought it is an interesting project to see how far TW5 can go towards a multi-user environment with very little modification.

Now for the fun part. Want to test it out? 


Use on of these User names. Use password as the password. And play for a bit. Lets see what issues TW still has that make it not very good for multi-user use cases.Keep in mind no data is safe on this instance, it is a cheap 512MB hoster, and doesn't have a lot of space. I reserve the right to delete this at any time if there are bad actors. The goal is to find issues with it, find gotchas, and generally as a thank you to the community and Cardo for coming so close. Thanks, William.

@TiddlyTweeter

unread,
Jun 23, 2019, 1:58:22 AM6/23/19
to TiddlyWiki
Ciao William


Currently that gives a 404 error for me.

Best
Josiah

William Armstrong

unread,
Jun 23, 2019, 2:07:08 AM6/23/19
to TiddlyWiki
You are correct. Apparently, the slash after the link causes problems. I fixed it in the original post, and here it is again for all those looking at this through email.


Let me know if you have more issues. Also, pay no attention to the link to the unfinished WP site in the side bar. :)

Have fun, and try to break it. ( That is my favorite part of testing new things.)

@TiddlyTweeter

unread,
Jun 23, 2019, 2:33:32 AM6/23/19
to TiddlyWiki
Ciao William

When you login you can save a Tiddler. Close the session and find it again on re-opening the wiki? Yes? In other words its created on the server?

But how do you not just close, but log-out? So you could login again with a different account? Is there a way to do that? I'm not clear.

Best wishes
Josiah

William Armstrong wrote

William Armstrong

unread,
Jun 23, 2019, 3:00:58 AM6/23/19
to TiddlyWiki
You have to clear some site cookies to logout. Or use incognito mode in your browser. Edge I was able purge the correct data. I am not finding it right away in Vivaldi(Chrome essentially). Incognito mode allows you to be logged in in multiple windows however.

I have not tested Firefox. Changes you make in one instance are almost immediately seen in the other instance.

What is interesting is if you are logged into two browsers at the same time, the new tiddlers don't update. So new People don't show up until you refresh the page. Something to keep in mind when switch between devices, I guess.

William Armstrong

unread,
Jun 23, 2019, 3:03:37 AM6/23/19
to TiddlyWiki
It would be nice if different users could use different themes. 

Ste Wilson

unread,
Jun 23, 2019, 4:04:43 AM6/23/19
to TiddlyWiki
Most impressive!

TonyM

unread,
Jun 23, 2019, 4:06:39 AM6/23/19
to TiddlyWiki
WIlliam,

This is a promising example. WHat I am not sure about is how when I make a change and it is saved I am not overwriting someone else?

I just created New Tiddler and New Tiddler 1

I am not fully sure of your question above. But you know that $:/status/UserName stores the current user and is applied to the hidden fields 
creator:The name of the person who created a tiddler
and
modifier:The tiddler title associated with the person who last modified a tiddler

Regards
Tony

William Armstrong

unread,
Jun 23, 2019, 4:30:21 AM6/23/19
to TiddlyWiki
So the short answer is, nothing prevents you from overwriting someone else. This is just TiddlyWiki 5 and Cardo. The point is to see if it is usable for a larger use case than 2 people. In other words, for this use case, a Getting Things Done project management specific wiki, how important is it to have those controls. It is mainly useful for the Project management, and maybe less useful for References, but we can find out, with test and highjinxs.

The way Cardo works, it maps the People overview to the users name. So when you open up, if you logged in as TonyM, the MyDashboard default to a Tiddler with that name. It then gives a view over anything related to you project wise. There is also an All Items view that lists all projects and their related. I am using All Items as the default tiddler to open.

If there is something I can place there that returns the name of the user, and picks that tiddler with the My Dashboard, that would allow each authenticated user to start with the items most important to them.

TonyM

unread,
Jun 23, 2019, 4:52:56 AM6/23/19
to TiddlyWiki
William,
I logged in as 
  • speckledcomparison
If what I did wiped anyone else's tidddlers while I was there this would fail to be a working solution would it not?

Not withstanding the above. What if the only tiddlers it saves are those I create and modify, and you constrain me in what ones I create so I do not save over someone else? That is no user saves any tiddlers other than their own.

For you problem have you looked at using a filter something like this;

"[all[tiddlers]creator[speckledcomparison]] [all[tiddlers]modifier[speckledcomparison]]"

Or

"[all[tiddlers]creator{$:/status/UserName}] [all[tiddlers]modifier{$:/status/UserName}]"

So to open a tiddler based on a user name you can use the content of {{$:/status/UserName}}

Regards
Tony

On Sunday, June 23, 2019 at 6:30:21 PM UTC+10, William Armstrong wrote:
So the short a 

William Armstrong

unread,
Jun 23, 2019, 6:25:33 AM6/23/19
to TiddlyWiki
@ TonyM

You are correct. Bad actors are a problem. Thankfully, most people aren't bad actors. Especially when to gain access to write the files requires authentication. (Remember this is a testbed, it should not contain any valuable data.)

Ok, I am not explaining myself very well. In Options under Default Tiddlers, what can I put there that would evaluate as the Username for Signing Edits. 

You signed in as speckledcomparison, so I would want any time you logged in for the Default Tiddlers section to act as if the only entry in there is speckledcomparison. And when someone else signs in, it behaves as if the only entry is their Username for Signing Edits. All those options you are giving me are already built into the Cardo plugin, actually tailored for this use case.

When you opened the Wiki, that Dashboard is created by the Cardo plugin. There is one just like it for each of the logged in users, and people for that matter. To see that view, in the sidebar, underneath Cardo tab there are a New, Review and Maintanence tab. Click on maintenance the first time you log in, and click Create "My Dasboard". This will open up a new Tiddler, with the current logged in user filled in as the name. Just click save, and it automatically creates that Dashboard view from All Items, limited to those things directly related with your user.

If you then put your Username in the Default Tiddler's spot, you have that view open when you open the tiddler. I want that experience for every user that logs in. The All Items view that is currently in their is a compromise.

Did I maybe explain it better? If not let me know, and I will try from a different angle. Thank you for taking the time to test this, and help me out.

William.

TonyM

unread,
Jun 23, 2019, 7:55:53 AM6/23/19
to TiddlyWiki
William

I admit I was not so well versed in cardio's operations. I think I can help but need to look closer.

I think you may need to use some startup actions perhaps even the original plugin or perhaps if cardio works on top of the next release the local storage plugin can be set to save the default tiddlers or the user id in local storage. Restoring them on the next visit in local storage rather than the wiki itself.

Regards
Tony

TonyM

unread,
Jun 23, 2019, 8:04:02 AM6/23/19
to TiddlyWiki
Post script

You did explain it much better.

I was not concerned about bad actors either. I just want to ensure integrity, consistency etc the accidental damage is the most likely problem.

It sounds like cardio may have already demonstrated a multiuser architecture, this can now be enhanced by using minimal local storage to keep track of each browser session. In effect managing user differences in core settings with a local storage overlay.

Regards
Tony

Jan

unread,
Jun 23, 2019, 3:16:43 PM6/23/19
to tiddl...@googlegroups.com
Hello William.

Very cool!
In Fact it is the first multi-user-node.js-Wiki I could test on the web. I would love to have more multiple-user demo scenarios with explanation.

Yours Jan


Am 23.06.2019 um 06:26 schrieb William Armstrong:



Hello folks, thanks for all the tips and tricks I have been browsing through for the last 2 months.

I have setup a basic TW5 node server, and installed the Cardo.json from cardo.wiki. Adding the credentials option to the node server and readers and writers permisions, I can get effectively multi user logins. I am using HTTPAuth as well from nginx. (Webinoly makesit extremely simple to setup a proxied app, including TW5. I will have to write up a tutorial about that.)

Now, this setup authenticates the user, but what about conveniences. Cardo has these great overall views that are built-in for each person, so normally I would just make that the default tiddler and move on. But that doesn't work in a muli-user environment. My solution is to use the [[All Items]] list as the default,and the user can go from there. (If anyone knows of a way the Author tag can be automatically substituted, I would love to know.)

Now, this is a small wiki with just me and my family. We have only used it for a night or so, so no guarantees. I thought it is an interesting project to see how far TW5 can go towards a multi-user environment with very little modification.

Now for the fun part. Want to test it out? 

--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+...@googlegroups.com.
To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/48d52a81-4af0-4a7b-a431-ad71d5c18723%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

William Armstrong

unread,
Jun 23, 2019, 5:38:32 PM6/23/19
to tiddl...@googlegroups.com
TonyM

On first thought, I would ensure a "backup" with a git script with a new commit each hour. I could piece together something that worked. This would give some security against bad actors.

I wonder if anyone has mad a plugin which functions as a "Trash" can for deleted Tiddlers. Essentially deleted Tiddlers under node would be move into a folder, rather than actually be deleted. They would then be pruned on a regular basis.

About your idea for an overlay, I would think setting some fields in the User Tiddler would be more persistent? And would allow settings to move between browsers and devices.

Though it could make sense to add some state that is used for devices. One example is the Cardo theme doesn't work well on phones, but works well on Desktop. Some may want to change the theme on phone, instead of the Desktop.

William Armstrong

unread,
Jun 23, 2019, 5:46:11 PM6/23/19
to TiddlyWiki
Thanks Jan.

This is partly an experiment to see how well this runs, and how it scales past 2 people with a lot of trust. So I don't have much of an explanation ready for any of this. I am just testing it out. There are no protections in place currently, so break it in all the ways possible. Maybe it can help inform some directions for the node portion TW to make the simplest changes necessary to allow multi user environments.

Some sort of primitive access control to be used by plugins, taking the burden off of the TW devs, maybe? Cardo is a good example of a plugin that works equally well in both single and multi user mode, but multi user could seriously be out of scope of the project.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddl...@googlegroups.com.

William Armstrong

unread,
Jun 23, 2019, 5:49:47 PM6/23/19
to TiddlyWiki
TonyM

I assume you were the one that created a reminder that said "Were can I see this?"

Reminders pop up in Cardo when you clickonthe Review tab under the Cardo side tab. If you snooze the reminder, the it will reappear after the next time you reload the page and click on Review.

Hope that helps.

TonyM

unread,
Jun 23, 2019, 7:10:15 PM6/23/19
to TiddlyWiki
William,

I don't recall "Where can I see this?"" or "Washing the Dishes", I continue to login only as speckledcomparison.

I am happy to jump in the deep end and help you with this, I am just surprised Cardio can accommodate multiple users.  I am not yet confident this is the case.

The truth is if users can only save their own tiddlers, and they are somewhat sandboxed from other users, then this may be a workable solution. Adding local storage to retain user settings, that not saved back to the server would also make it look as if the user has the environment to themself.

I am keen not only to help you get a multi-user cardio, but I would like to design a "Design Pattern" to apply to TiddlyWiki to support any multi-user solution. 
I am already working with a few people on something similar and have 80% developed an in wiki user control process, and hope to build a check-in and out process for single file wikis allowing controlled "Serial Editor" access.

Thanks for sharing your idea.

Regards
Tony

William Armstrong

unread,
Jun 23, 2019, 7:29:28 PM6/23/19
to TiddlyWiki
TonyM
When you reload the browser page, then click on the Review Tab under the Cardo Tab on the side menu, does the reminder not show up? It does for me under the situation where I am not logged in, and where I am logged in. However, when I log in as speckledcomparison, the reminder does not show. Did you ever see the reminder at least once, and did you perhaps hit close? 

After changing the name of the Reminder (fyi, I never leave the default name, it won't display in the Dashboards with the default name) I can no longer get it to display. Very weird.

Now I can see it in the Dashboard, however.

Also, I haven't said this before, but in the Dashboards, in the Focus Drop down, make sure you actively choose on of those options. If you choose All, do you still not see the items you have made? I don't know about the reminders, will have to look into it with the author if I can't figure it out.

At a guess, since Cardo isn't really designed for multi user, it may just have a simple mechanism to check if it has been seen.

TonyM

unread,
Jun 23, 2019, 8:02:51 PM6/23/19
to TiddlyWiki
William


When you reload the browser page, then click on the Review Tab under the Cardo Tab on the side menu, does the reminder not show up? It does for me under the situation where I am not logged in, and where I am logged in. However, when I log in as speckledcomparison, the reminder does not show. Did you ever see the reminder at least once, and did you perhaps hit close? 

I do not recall setting or seeing a reminder
 

After changing the name of the Reminder (fyi, I never leave the default name, it won't display in the Dashboards with the default name) I can no longer get it to display. Very weird.

Now I can see it in the Dashboard, however.

Also, I haven't said this before, but in the Dashboards, in the Focus Drop down, make sure you actively choose on of those options. If you choose All, do you still not see the items you have made? I don't know about the reminders, will have to look into it with the author if I can't figure it out.

I will try and see
 
At a guess, since Cardo isn't really designed for multi user, it may just have a simple mechanism to check if it has been seen.

This will be a fatal flaw, however I have raised a suggestion in the dev forum for something that may allow multi-user to be retrofitted to cardio and other cases. It may however be too revolutionary or contain a fatal flaw, so may not come to be, or at least for some time. See here

Regards
Tony
Reply all
Reply to author
Forward
0 new messages