Bookmarks: Add Sharing / Use share api [$145]

Created on 10 Apr 2013  ·  55Comments  ·  Source: nextcloud/bookmarks

The Current version of bookmark does not allow to share bookmark using the sharing api.

Let the user share a tag with users and using a "private link".

Export a simple page with the bookmarks and an feed (atom, rss, ..) .


There is a $145 open bounty on this issue. Add to the bounty at Bountysource.

enhancement

Most helpful comment

I have had requests for this and added 100 usd on the bounty.

All 55 comments

ref owncloud/apps#95

looking forward to seeing this implemented :)

Hi guys,

what about this feature? Somebody knows something else this function and implementation stage? I think necessery update the owncloud stream with bookmark information (new, delete, update).

best regards

Still nothing happening here? I would really like to see a sharing feature in the ownCloud Bookmark App.

Also voting for this to be implemented. As bookmarks are a part of the built-in features, I really think this should work; the whole thing is about collaboration, right?

+1, especially the RSS/Atom part.

Any news on the sharing?

+1

I definitely think this would be really useful and practical to have the ability to share all your bookmarks or a few with other users like calendars

Any News? I'd like to see this too.

Another +1. We would like to share a collection of bookmarks for a project with external people (they have no user account on our ownCloud instance). We already share some files with these external people via a public link. It would be cool if we could just integrate our bookmarks into this shared file folder as clickable links (maybe even visually separated from the ordinary shared files and folders). This way we only have to share one link and everything that is needed for our project is easily accessible for our external people.

+1
Our company is looking exactly for this functionality, lack of sharing in current bookmarks implementation means it is useless for us at this moment.

+1
exactly what we're looking for to avoid having yet another service to add in our organization. Could we have any feedback from an owncloud developer?
thanks!

:+1:

Yes, please, I actually expected this feature when I installed it :)

:+1: :)

Any news on this? I would really love to have this feature

This is the status quo on this feature:
Currently, there is a database field for each bookmark reserved to hold information whether it is public or private. The API can handle the field and even querying it is supported, so you can for example retrieve the public bookmarks of a specific user.

So going forward, we'd have to discuss the exact concept for sharing, specifically whether a private/public mode is sufficient (I've never used the sharing API myself, so I'd have to do some reading on it). Also, some concept would need to be developed for how sharing should work in the ui.

I'm open to implementing this, but the ETA is unknown as of yet.

My personal use case is "_hey, everybody! This is stuff worth reading!_" - which is a subset of my bookmarks. Having only public and private would be totally fine for me.

Ultimately, I'd like to see the full sidebar implemented, but that requires changes in the server part.

In the meantime, something like the Gallery or Deck sharing dialogue could be implemented, making it easy to share bookmarks with other users or even publicly via a link.

The sidebar crossed my mind recently as well. The UI could use some love anyhow.

Sharing would also be nice for tags, so you don't need to manually share every new bookmark you add to a tag.

My personal use case is "hey, everybody! This is stuff worth reading!"

And FWIW, in addition to the above mine would be to share bookmarks within an organisation, so e.g., sharing with a specific group or user.

I guess in the long term a common sharing philosophy for all Nextcloud apps would be desirable, though this is way out of the scope of this issue.

👍

+1

+1

+1

Thanks for the feedback. However, more +1 won't make this happen. Code will make this happen :)

Alrighty, so let me propose the following:

Features

Ideally we would want the following features

  1. sharing single bookmarks via 3-dot-menu in bookmark tile
  2. sharing a tag via tag list on the left (via 3-dot-menu of the tag)
  3. both cases should open a sidebar on the right with all options, which are
    a. like in Files: other nc users, federated sharing, public links (sharing a single bookmark via a public link is kinda pointless, though, no?)

Implementation

How do we implement this?

  1. sharing bookmarks within the realms of one instance would theoretically be possible by sharing the ids directly. But this would also share added tags. This might be useful, but it could also be messing up people's personal organization, since everybody probably has their own system of tagging bookmarks.
  2. similarly sharing a tag within the realms of one instance would be possible by having a separate table that stores which tags are shared among which users. In this case if user A already has a tag named foo, and B shares their foo tag with A, user A's bookmarks in foo would be merged with user B's bookmarks in foo, which is not a good solution IMO

To avoid # 1 we could "copy" the shared bookmark and keep a reference to the original in the table entry. This would also allow federated sharing by referencing user, nc url and id of the original bookmark. The original bookmark would have to be updated whenever the copied one is being updated and vice versa (probably requiring polling, in the case of federated sharing -- I'm not sure how this is usually handled in Nextcloud; The question then would be whether edits to the "copied" bookmark should be possible in case the remote end is unavailable / doesn't allow edits, as this would probably create a conflict that is not easy to reconcile).

To avoid # 2 we could introduce a different kind of tag which is a shared-with-you tag that cannot be removed nor added manually. This tag entry in the DB would reference user, nc url and tag name of the original tag. It would still be necessary to "copy" the tagged bookmarks as suggested above, since we don't want to overtag overtake all tags of the sharer.

There would also need to be tables for holding sharee permissions and public links.

Drawbacks / Limitations

  1. It's not possible to share combinations of tags (which kind of resemble folder paths)

cc @nextcloud/sharing @MorrisJobke @juliushaertl @jancborchardt

@marcelklehr

Point 1

it could also be messing up people's personal organization, since everybody probably has their own system of tagging bookmarks.

In which cases would people be sharing within an instance? My guess is that this is most likely to be an organisation where people are working together and communicate via channels other than sending each other bookmarks, so there is a good chance that there will be some sort of tagging convention, or one will emerge as they start sharing.

I don't think this will be a problem. If it is, it can always be fixed latter. ☺

Point 2

if user A already has a tag named foo, and B shares their foo tag with A, user A's bookmarks in foo would be merged with user B's bookmarks in foo, which is not a good solution IMO

Do you mean visually merged, or merged in the database? The former is clearly a feature, not a problem. That is what people do all the time with “hashtags”, don't they? The latter is more of a problem than a feature, I agree.


I am not sure if a little user story would help, but in my organisation we would love to be able to share tags with each other. For example:

I, 9662, have these bookmarks:

Bookmark | Tags
--------------|----------
Frobnicator | project-a, materials
Joe Blogs Consulting | project-a, people
Divide and Conquer Accountants | project-a, people

And my colleague 9663 has these:

Bookmark | Tags
--------------|-------
Whachamacallit Mk 2 | project-b materials
Jeanne Blarg | project-b, people
Sharks 'r Us Lending Co. | project-b, finance
Divide and Conquer Accountants | project-b, people

Now I share project-a with 9663 and he kindly shares project-b with me. Each of us will see this:

Bookmark | Tags
--------------|------
Frobnicator | project-a, materials
Whachamacallit Mk 2 | project-b materials
Joe Blogs Consulting | project-a, people
Jeanne Blarg | project-b, people
Sharks 'r Us Lending Co. | project-b, finance
Divide and Conquer Accountants | project-a, project-b, people

Note how the other tags are carried over, even though we only shared project-a and project-b, and how they are merged with the sharee's content. There would also be loss of information if the other tags were not implicitly shared, although this behaviour may not always be desirable and could be simulated by sharing all relevant tags.


Of course, this would probably be much easier if we had the ability to create multiple bookmark collections, in which case you would just share the whole collection with other users, much in the same way as https://github.com/nextcloud/deck does it.

@9662 Thanks for the input! I guess it can make sense to have the sharing system more transparent to allow sharing of attributed tags along with the shared bookmarks. We could of course make this optional (to add some more complexity :D), but I'd rather settle for one of the two approaches. (@jancborchardt any advice appreaciated :) )

btw, for reference https://github.com/nextcloud/bookmarks/issues/405 (the issue re: collections)

Are "collections" the same as tags? Cause we should only have one system of organization/categorization.

And then it's simple:

  • Allow sharing of single bookmarks
  • Allow sharing of a "category" (in Bookmarks that would be a Tag, right?)

Just a quick FYI. The current sharing in the server is for files. So if you want to do sharing just create a 'bookmarks_share' table or whatever and put the info you need in there.

@rullzer Ah, thanks :) I had realized this some time ago :D
Do you cache anything that is shared from a different server, btw?

@jancborchardt The question for me in the above post was whether shared bookmarks should retain the tags they were assigned by the sharer, or if the sharee shouldn't be able to see those / shouldn't have their tagging system interfered with, since people have different tagging systems. I'm coming from the idea that tags replace a folder hiearchy, but e.g. in the files app you don't share the whole path to the file but only the file itself, leaving the sharee free to put it where they want to have it.

@marcelklehr we do not with sharing files. Because then you get in weird situation where there are multiple versions of a file ;)

Hi at all,

I just want to bring this topic up again. Does anybody want to spent any time into this?

thanks a lot!

@tuxedoherbert there is a bounty on this issue you can donate to: https://www.bountysource.com/issues/1692470-add-sharing-use-share-api – this will help support any volunteer who wants to work on this issue.

Same for everyone else who commented and is interested in this issue:
💸 If you can, please donate to the bounty on this issue (it’s currently at only $15)

I have had requests for this and added 100 usd on the bounty.

Interested in this too :) lots of use case for public schools, share bookmarks with group of students or teachers

Dear all, I've thought about contributing code to this. BUT, Nextcloud devs like to keep their code neatly knit together. Sharing bookmarks would be a deep project and, guessing how they work from what I see, their team is probably already solving this "issue" at a much deeper level in their code. It takes time, but it is what makes Nextcloud stable. And so, we may have to wait a little while, but not forever. Stay patient. — IMHO

Perhaps someone from the nextcloud team could verify or debunk this? Having this comment here based on a bunch of assumptions and beliefs might deter someone from _actually_ contributing code?

Yes, I can assure you that this is on my agenda :)

Just a quick FYI. The current sharing in the server is for files. So if you want to do sharing just create a 'bookmarks_share' table or whatever and put the info you need in there.

dear @rullzer , are there any plans to open the share-api for custom items? so not files, or deck-cards, etc ?

Example: Instead of the suggested table "bookmarks_share", then having a record in the general nextcloud share table, with an "app" attribute oder "sharetype" that can be set to the value e.g. "bookmarks"..

If this already exists, is it documented or even implemented somewhere to relate to?

(was also asked here: https://help.nextcloud.com/t/using-share-api-for-non-file-shares-possible/15183)

+1 for bookmark sharing

... while I have you folks here, what, if there is one, is the use case for sharing a single bookmark with another user? Sharing folders makes sense, sharing a single file makes sense, too, but sharing a single bookmark?

Personally, I can't imagine the case for "single" link share. Perhaps other than link-shortener and tracking stuff, both of which I would actively like to avoid. It's a web-breaking practice mostly used to spy on people[1]. In my opinion, share a bundle/folder/collection/whatever of links.

If you need to share "just one", put it in a collection or pass on the link directly.

[1] except for the added benefit of getting rid of referrer-headers, but that can be achieved by other means, and does not apply in this case anyway.

The main strength of individual link sharing I can think of is to send a link to Wallabag, as intended in issue #524, otherwise I'll stick to sharing by group or tag

I think the word "share" is used for very different things in these two cases. In this case here, it's about "I want to give this list of links to people with (or without) accounts", in that other one, it's more like "automatically integrate wallabag and bookmarks", I think we should keep these two cases seperate.

Just to add a comment. I'd like to be able to share bookmarks like a folder. So I could make a shopping list and share it with people who and don't have accounts. Just like file folders.

@marcelklehr do I understand correctly that the UI is the only thing missing? See checklist here https://github.com/nextcloud/bookmarks/pull/870
Would it be helpful if we provide some mockups?

I'm sorry for the wait. I got sidetracked because I decided to refactor the db schema again. (And because floccus needed a lot of bugfixes.) I have some idea of how the UI might look like, especially, since there are quite a few reusable nextcloud components now. I have the server-side tests passing again, now, and will be able to focus on the UI next week, thanks to the corona shut down. :)

If you are technically inclined you may want to give https://github.com/nextcloud/bookmarks/pull/952 a go -- preferably on a testing instance or after making a database backup. Instructions on how to install are in the README.

...and here's the first beta version: https://github.com/nextcloud/bookmarks/issues/965

:sparkles:

Was this page helpful?
0 / 5 - 0 ratings

Related issues

NWiogrhkt picture NWiogrhkt  ·  4Comments

lyallp picture lyallp  ·  4Comments

ifuchs picture ifuchs  ·  4Comments

sunjam picture sunjam  ·  4Comments

saywebsolutions picture saywebsolutions  ·  6Comments