Obsidian Sync: Sharing a vault

Use case or problem

Now that Sync is basically working for multiple devices (mobile + workstation), we should extend it to add support for inviting other people to share Vault syncs.

This is a big need for us, as we individually use Obsidian for personal Vaults, but we have common knowledge we wish to share amongst our team.

Proposed solution

Syncs are already passphrase-encrypted. It’s not ideal, but given the current setup, sharing that passphrase is an acceptable solution. Both of these require (and I presume the existence of) unique IDs for syncs and users.

Given my lack of knowledge on how the Sync service is implemented, I can only speculate on solutions, but I see two obvious approaches:

Pure client-side sharing

The Server doesn’t care about sync access: so long as the client has the Sync ID, it can access the Sync.

The upshot is simplicity. The downshot is security:

  • single layer of access security; just two pieces of knowledge (no second factor)
  • in case of a breach, there is no way to re-secure the Sync

Server-mediated sharing

  1. Users declare other Users from whom they will accept Sync offers
  2. Users declare other Users to whom they wish to share a given Vault (or set of Vaults)

This is, then, a double opt-in, server-moderated sharing system. Sync passphrases must still be shared out-of-band, but this adds a server-mediated revokability and finer-grained control, as well as something of a second factor. The down side is that it involves much more UI complexity and Server-side facility.

This double opt-in model is mostly the same as what Syncthing currently uses. In particular, I do not think we should facilitate unsolicited share offers: that is a SPAM-inviting anti-pattern.

Current workaround (optional)

Currently, we use Syncthing to manage this, but that is an additional tool which should not be necessary with the Sync feature. Obviously there are myriad other external solutions (Dropbox, Drive, etc), but nothing beats the simplicity of having in-app support for this.

21 Likes

In truth, there is nothing particularly necessary about the Server-side solution which actually mandates a Server-side mediation. All of that can be done on the client side… and indeed, that is exactly what Syncthing does. However, that presumes a kind of peer-to-peer communications channel which may not presently exist, which is why I present it as a server-side implementation. It is certainly better to implement it in a completely distributed fashion.

Mightn’t this run into the Sync limit on the number of remote vaults?

Hello,

It would be great to have a feature which allows for collaborative editing for a team. I don’t mean real-time editing as that would require a server or cloud but rather something which implements version control, possibly through Git. It would have to handle conflicts, merging or generate alerts to make it work however.

You can put the md files directly under version control in git no?

Or something that does ‘auto-pull’ would suffice…

People rarely work in the same markdown file, at the same time.

Thank you for proposing this @ulexus . This is a killer feature that would be huge for groups. Our organization is loving Obsidian but we keep running into situations where we need to share vaults between users. The current conflict resolution algorithm is good enough for our use case, so really all we need is a way to share the vaults.

+1,000 for this feature!

P.S. I also notice that “Vault sharing” is listed in the help vault, obsidian://open?vault=Obsidian%20Help&file=Licenses%20%26%20add-on%20services%2FObsidian%20Sync – so maybe we don’t have to wait too long?

1 Like

This would also be great for my wife and I. We share a vault via Obsidian Sync but the workaround we use to do so prevents her from having her own Obsidian account and settings. And because we use Obsidian Mobile, a Git-based solution isn’t great.

2 Likes

This seems like the feature I am looking for as well, as I think of implementing Obsidian as a Knowledge Management System for the company I work at. I tested the use of a remote drive which works but it ain’t ideal, as no version control is available and if we were to use it even in our team of 15 people it would be chaotic.

Also, I would like to add that an option to share the Vault partially or have different classes of users would be great.
For example, we would like to be able to share only basic information with technicians, a little more with engineers, and have unlimited access by managers.

@jag3773
I do not see that :<

1 Like

Why don’t you simply grab Syncthing’s code and implement it in your Sync? The additional benefits would be:

  • people with iOS/iPadOS devices will finally be able to sync their vaults directly
  • you can enable direct p2p synchronisation with & without a central server

(Sync option will remain paid, but whether that can be reconciled with Syncthing’s license remains to be seen)

1 Like

I work at a small software company, and we’re running into issues with knowledge spread throughout multiple drives in different formats. Referencing specific pieces of information has to be done manually, which is a big drag on productivity.

I’ve used Obsidian for personal knowledge management for a few months now, and I’m thoroughly happy with my experience. I would love to use Obsidian for work as well, but there is some information that not every team member needs to be privy to.

Adding onto this post, I would also like to see permissions for specific files and folders that contain sensitive information before trying it out.

1 Like

Thank you !! This is exactly what I was looking for. My wife and I are currently 10.000 kilometers apart quite often. This is another way for us to share our lives . I also hope that it will progress in this direction.

1 Like

FYI, I created a plugin for notes sharing and team collaboration.

You can try it here: https://www.sekund.io/install

First and foremost, it’s a social network, so you have to start adding people to your contacts. Once they have confirmed that they know you, you can start sharing your notes with them, and they will be able to do the same. When people see your shared note, clicking on its title in the plugin will download the note in a special folder called __sekund__ in their vault, which means that they will be able to link to it. There is a commenting UI which supports markdown, and even emojis.

Notes downloaded in this way are meant to be read-only and updates to your notes will be instantly visible to people with whom you have shared them. You just have to hit the “Update” button after you have made some change.

Inclusions are supported, which means that direct dependencies: included notes, images, videos,… of your notes will be sent alongside you original note.

There is a group functionality as well.

I am currently experimenting with a feature that lets you see how many people have linked to your note. It can be conceived of like an improvement to the “like” functionality in conventional social network.

Next steps include the ability to publish a note, thereby making it available to everyone.

Mind that the plugin is still in beta and it looks like there are some weird interactions with other plugins, so if it doesn’t work for you, or behaves strangely, please tell me and, if you can, send me the list of your currently enabled plugins.

Curious to know what you think of it.

4 Likes

This will be implemented beginning with 0.14.10.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.