Joplin: [Feature Request] Note Sharing

Created on 30 Dec 2018  Â·  31Comments  Â·  Source: laurent22/joplin

The encryption option is great which allows notes to be secure when stored on a cloud but it Joplin lacks note sharing which is a handy feature in apps such as Google Keep, Evernote and Turtl. Joplin is a self hosted note app and a way to share notes would be to use Syncthing or cloud storage with a shared folder. I think Joplin should add the following to make this a reality.

  1. Encrypted Notes and Notebooks - Keep the default encryption setting but have excluded notes use a separate password which can be shared with friends to access the notes. Consider it to kinda work like PGP keys in encrypted emails.

  2. Note Permissions. If you want to share a note to friends but not have the note deleted, edited, encryption changed have a admin password that is required to make such changes.

Most helpful comment

For me too this is the one missing feature from Joplin.

I use Syncthing to sync Joplin notes between 3 devices. Would it be possible to configure a separate sync path per notebook/note that is to be shared? I could then create a separate sync task in Syncthing. This approach could in theory also work for those using Dropbox or other sync solutions.

All 31 comments

This would be a really neat feature, but I guess this will be tricky, unless sharing happens via the same backend. E.g. notes are stored on dropbox and userA and userB both have joplin configured with dropbox as backend.
Or userA and userB use the same nextcloud instance. In this case sharing seems doable.

I will be tricky when it comes to sharing the notes with others but Joplin doesn't have to worry about that. All Joplin needs to do is allow certain notes and notebooks to be encrypted with separate passwords. This way you can encrypted a single note or a notebook and share that password with other users.

Also what will be needed is a way to ensure that there is a admin to the note who can change the note password so other peers cannot change the password making it unable to decrypt by others.

A suggestion for having a admin to have the ability to modify the note permissions would be to have a admin password. This password will not decrypt the note but only this password will determine who can change the note password itself. Essentially if you want to change the note password a special password is required to do so.

I've also thought about this. But more in the context of shared notebooks that can be edited by multiple individuals. In my workflow it would just mean sharing the folder on Syncthing but I can imagine it might be a problem if people are using different backends

This is the one feature missing from Joplin that would make it replace almost every similar tool me and my family use. At the moment only I use it. The minute I want to keep a note that I share with my wife, I'm on Wunderlist right now. But to be really useful in a broader context an app like Joplin needs good sharing options.

Most apps that support this do it with accounts and a single central repo for the notes and such. Joplin of course support numerous synchronization backends, NextCloud, and others. I guess one solution is configure our clients to use the same backend. The draw back is that ALL the notes would be shared.

Correct me if I'm wrong.

If so, there could be a number of approaches to sharing. The simplest which would work for regular sharing partners is perhaps of under General options/Synchronisation where I currently specify one service that we configure the same one but that notes in that repo have owners and permissions based on a Joplin security layer on top of the webdav one. That would need sharing users to be using the same synchronization service (and is how I suspect most apps do this).

Any shared note needs to be shared with "someone" and they need to be identified. Common method is email. So they'd get an email I guess (Wunderlist works this way) and in it a link to get the shared note synched to their instance). But the mechanics of that would be open (note specific sync services?).

I guess the challenge of doing this across diverse backends is what's kept it unimplemented. Alas until it happens Jolpin loses a large market of prospective users, those that have sharing needs. I love the rest of it! And that I can host my back end privately. But I need to share with family and so they are stuck using Wunderlist with me for now.

For me too this is the one missing feature from Joplin.

I use Syncthing to sync Joplin notes between 3 devices. Would it be possible to configure a separate sync path per notebook/note that is to be shared? I could then create a separate sync task in Syncthing. This approach could in theory also work for those using Dropbox or other sync solutions.

For me too this is the one missing feature from Joplin.

I use Syncthing to sync Joplin notes between 3 devices. Would it be possible to configure a separate sync path per notebook/note that is to be shared? I could then create a separate sync task in Syncthing. This approach could in theory also work for those using Dropbox or other sync solutions.

if I had to share I will export the note to Dropbox (for example) then share the file from here.

I have been using syncthing to sync three devices, two PC's and one Android phone. Everything started out great and the two PC's are remaining in sync perfectly. My problem is the Android notebook and note structure has slowly disintegrated so that notes wind up in the wrong notebook and the structure is becoming more random as time goes by. Is there any way to get the Android Joplin back in sync without starting from scratch? It seems that when a note is moved on the PC's Android doesn't track that change.

Any ideas? Not a fan of Dropbox since they changed their device policy.

Thanks

if I had to share I will export the note to Dropbox (for example) then share the file from here.

This is a workaround not a solution. I am hoping some day to replace Wunderlist with Jolin. But no can do until my family members can and I can all look at one TODO list and add items, check them off etc. so we need to be able to share a notebook, so that when an item is added, others can see it, when an item is checked done, others can see it. This is a central feature for apps like Wunderlist and Evernote to be honest. Joplin is by far the most hopeful replacement for them all just needs this kind of sharing.

Non trivial to implement but not the end of the world. As I see it would need account management somehow that Joplin lacks at the moment.

It needs for Joplin instances to be able to find one another. So I can right click on a notebook and click Share ... and enter an email address and they get an email with instructions on how to install Joplin on their phone or PC and when they do in their Joplin instance they see an incoming share request which they can accept and then it syncs with their client.

So the shared notebook has to have a cloud address (and Joplin supports numerous options there so this may only be available for a subset of them) and that cloud system needs support for sharing that Joplin can configure if it has a login to that cloud system configured under Tools>Options>Synchronisation.

It needs a little thought and design basically.

And a new Joplin instance newly installed or preexisting needs somehow to receive the share request. Which also needs some thought an design given the diversity of clients back end cloud systems they support. And again this may in the first instance only work with with some backends, and if they provide a share link, then the email the recipient has might have that link in it for them to click which NextCloud, DropBox or OneDrive manage and gives someone shared access to the file or folder that represents the notebook etc ...

There seem at least two layers there and it may not work with Filesystem or WebDav, don't know.

What I do know is, Sharing would take Joplin to the next level of world dominance.

if I had to share I will export the note to Dropbox (for example) then share the file from here.

This is a workaround not a solution. I am hoping some day to replace Wunderlist with Jolin. But no can do until my family members can and I can all look at one TODO list and add items, check them off etc.

Speaking of workarounds, have you thought about using Etesync together with OpenTasks (confusingly just called Tasks on F-Droid)? Fully end-to-end encrypted synchronisation of both contacts, calendar, and tasks.

My workaround is atm. a "group" Account on nextcloud, which is used by all group members for syncing of Joplin.

Now I face the problem, that I also want to use it private. Therefore, I would need two instances of the app.

A way would be to allow multiple sync accounts, this don't solve easy sharing but would allow multiple shared instances.

Cheers
Hannes

Can I get chance to work on it...

Hey there, it looks like there has been no activity on this issue recently. Has the issue been fixed, or does it still require the community's attention? This issue may be closed if no further activity occurs. You may comment on the issue and I will leave it open. Thank you for your contributions.

Note sharing is still a much desired feature, please keep this open.

I'd love to see this - one of the main reasons I haven't moved fully across.

Hey there, it looks like there has been no activity on this issue recently. Has the issue been fixed, or does it still require the community's attention? This issue may be closed if no further activity occurs. You may comment on the issue and I will leave it open. Thank you for your contributions.

Not fixed and highly desired.

I am missing this too in order to make a full switch.

I think note sharing would be best accomplished by setting a different save path for notebooks, including different encryption settings, and that location would be shared among those you want to share it with. Say a separate syncthing folder, or a dropbox folder or something.

I think note sharing would be best accomplished by setting a different save path for notebooks, including different encryption settings, and that location would be shared among those you want to share it with. Say a separate syncthing folder, or a dropbox folder or something.

I suggested this in May last year, but the idea didn't generate much interest: https://github.com/laurent22/joplin/issues/1085#issuecomment-491971703

I have a not-dissimilar use case where I would like to sync/encrypt some but not all notebooks across multiple devices (including desktop).

The aim would be to share only some notebooks with resource-constrained mobile devices while enabling the full collection of notebooks to be accessible on a desktop.

This is the one feature I need to make the switch to Joplin. Is there a plan to get this feature implemented? I understand security and reliability are imperative for this feature, but it would be great to know if this is actually a feature under development.

I can think of 3 ways to make this work.

  1. Integrate with Cloud Storage APIs to share notes natively on the platform they are stored
  2. Doesn't seem feasible, but is definitely doable
  3. Subject to availability of APIs
  4. Could break if Cloud Provider APIs are changed

  5. Native Joplin Sync/Share Server that handles the encryption, sync, edits, and other mechanisms required

  6. Would take a significant amount of work
  7. Ability to maintain security and performance inhouse
  8. No reliance on a 3rd party

  9. Interface with a 3rd party solution for Sync, Share, Encryption, and other mechanisms required

  10. Requires reliance on 3rd party software integration for security and reliability
  11. Possibility for 3rd party to abandon development
  12. Changes to 3rd party solution could break the integration

It would be ideal to have both public and private notes.

Public Notes

  • Public notes would be readable and/or writeable by anyone with a link
  • You could set an expiration date on these to easily remove them as shared after the specified time

Private Notes

  • Private Notes would allow for multiple mechanisms to secure them
  • PGP Encryption seems like an obvious way to go as this is the defacto way to protect emails and sensitive files

Hey there, it looks like there has been no activity on this issue recently. Has the issue been fixed, or does it still require the community's attention? This issue may be closed if no further activity occurs. You may comment on the issue and I will leave it open. Thank you for your contributions.

This is still a highly desirable feature - keep this open

I think @rangulicon is on the right track here in identifying the sort of options available.

Being independent of the storage engine is a significant feature of Joplin, which would be lost if we base synchronisation on smart server-side processes.

Basing synchronisation on shared access to the underlying storage would mean that sharing one note requires giving the other party the ability to mess up everything that is stored.

Clients could perhaps handle synchronisation themselves given some sort of client-to-client messaging system.

  • Messages would pass update data, and either locking messages, or conflict resolution ones.
  • The messaging system would presumably have to be asynchronous, so messages would go via some sort of server, but the requirement of that server could be quite generic. It's probably necessary to know that all messages are delivered and processed in order, but otherwise this could be pretty independent of implementation layers.

Would it not be possible to leverage Syncthing for this, in the same way that DecSync does for RSS, contacts, and calendars?

Even a simple folder share achieves this, a suggestion I've made before. Due to other frustrations with Joplin (cough…. auto save… cough) I've (hopefully temporarily) switched over to Markor, which stores notes in a simple folder structure. Any note or collection of notes I wish to share I save in a different folder, set up a new Syncthing share, and job done.

Private, secure, serverless, no reliance on third party integration efforts and/or ongoing support. Also no risk of breakage as a result of upstream changes as it's filesystem based synchronization. Unless Syncthing as a whole gets abandoned, of course.

The only downside is that Syncthing doesn't work on iOS, but that doesn't affect me personally.

Although it would be nice to have Joplin store notes using the filesystem for structure, I think if we can define secondary sync locations for a notebook, and set default encryption settings for that secondary sync location, then it can be up to us to organize, and share that out as we want.

In Settings > Synchronize, click a button that says "Add directory to sync", and enter the absolute path. Under Settings > Encryption > Master Keys, use check boxes or something to select which directories to use which encryption keys, including one call "All" that would be the default master key.

I think the way I've thought it up would be the least work for developers to implement, and give basic notebook level sharing to the application. It can later be hashed up to do note level sharing.

Hey there, it looks like there has been no activity on this issue recently. Has the issue been fixed, or does it still require the community's attention? This issue may be closed if no further activity occurs. You may comment on the issue and I will leave it open. Thank you for your contributions.

Hi Stalebot 👋

Or, could i publish my notes to github, just like Gitnote?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Rahulm2310 picture Rahulm2310  Â·  3Comments

Cybernemo picture Cybernemo  Â·  3Comments

v-marinkov picture v-marinkov  Â·  3Comments

smhearty picture smhearty  Â·  3Comments

kopfuss picture kopfuss  Â·  3Comments