joplin-share-server now has some functionality. You can POST
encrypted notes at it, and GET
encrypted notes from it.
Currently, that is about it! Whilst there is a version field in the note object, it’s always going to be 1
for the moment until I work out how to send updates.
So, with this “release”, this could be implementeed in the client:
In the sender’s client, it would to encrypt a note with a key (lets say abc123), POST
that note to the server - which returns a UUID v4 back to identify it (lets say b0bd7fba-c1b4-46e6-9484-5e047f05df0b
).
The sender’s client could then build a URL, like https://share.joplinapp.org/note/b0bd7fba-c1b4-46e6-9484-5e047f05df0b#abc123
The sender then conveys that URL to the recipient somehow.
The recpient’s client could intercept that URL when clicked (definitely possible with React Native, probably with Electron too), then make the HTTP request it to get the encrypted note, then use the key from the anchor tag to decrypt it, then save it in the recipient’s notebook.
One way sending of notes from one person’s notebook to another.
I have an idea for how updates could work, as well. It involves encrypted operation-based CRDT update messages. That’s a bit more ambitious, but if that’s possible you can do real-time collaborative editing potentially.