Circles 0.11.0 - User Management, Federated Circles & Activities

Circles 0.11.0 is Out !

Let’s have a look to the new major features coming with this version of the app:

  • A new interface,
  • Integration with Activity,
  • Federated Circles

User Experience

Creation of a circle

Circles now provides different levels to manage your members:

  • Members can share their stuff and have access to anything shared to the circle.
  • Moderators invite people to the circle, validate join request and remove members.
  • Administrators can give/revoke Moderator rights to any member and link circles.
  • Owner can give/revoke Administrator rights to any member, transfer the Owner right to someone else and edit the settings of the circle. There is only one owner per circle.

In the next animation, you can see the owner inviting a valentine to the circle, and confirming the request from lucien:

Manage your users

Activities

All internal activities of your circles are displayed in the Activity app.
From there you have a resume of circles creation on the cloud and, as a member or moderator, you will be notified of the new users, invitations, requests and rights update.

Federated Circles

Administrators can generate a Federated Link with another circle of another Nextcloud. This way anything shared to your circle will be instantly shared to this remote circle and to others circles linked to that remote circle, and so on… sounds crazy? let’s have a look at some examples!

We have 3 Nextcloud: Blue, Green and Purple.
Note that all those nextcloud already enabled the Federated Circles option in the Admin Interface:

The first animation shows how to enable the option in the Circle Settings and transform your Circle into a Federated Circle. Once set, any Administrator of the Circle will be able to send a request to a remote circle using the syntax name_of_the_circle@host_of_the_cloud.

The first part of the animation is the Blue cloud requesting a link with a circle on the Green cloud.
The second part is showing the interface of the remote circle (Green cloud) accepting that request.
Note: the circle on the Green cloud have its Federated option enabled before.

Linking Circles

Now both circles are linked!

There is no limitation to the number of circles you can link your circle to, nor to the number of circles can be linked together. But if you keep adding circles, you are generating a Cloud of Circles.

Linking Circles

This animation showed that

  • the Blue cloud is linked to the Green cloud,
  • the Green cloud is linked to the Purple cloud.

We now have Blue <-linked to-> Green <-linked to-> Purple

Mood

As of today, files shared to a circle are only shared locally and ARE NOT shared to others linked circles. It will be an option allowing this in the future, however Circles comes with an API that allows other apps to share data throw federated links.

Mood use the Circles’ API and Activity so your users can share their mood in a social media way.
Mood will add a small header to the Activity app where you can write a small status update and share it to a circle. Also, if you paste a link into the textbox, mood will retrieve the open-graph data from the website. When shared to the local circle, the Payload generated by mood will be sent to linked circles which will also send the Payload to others linked circles…

The last animation shows that Blue cloud post a new mood entry which is shared to Green cloud and Purple cloud and displayed in the Activity app

Linking Circles

Technically, the mood app is really interesting and I invite any developer to have a look to the source. The app is small and can be divided in 3 parts:

  • The Activity integration (lib/Activity/)
  • The Circle broadcaster (lib/Circles/) which is called on the other side of the link right after the payload is delivered. This broadcaster generates an Activity event to be displayed locally.
  • Some javascript to display the header and few PHP function to retrieve the open-graph eventualy (js/, lib/Service/)

Note: mood only works with Circles 0.11.0. Thank you for your patience!

2 Likes

Circles 0.11.0 is available on the Nextcloud App Store and mood should be working with this version

https://apps.nextcloud.com/apps/circles
https://apps.nextcloud.com/apps/mood

Thanks for the update! Small questions about circles I could not find somewhere:
What happens to the files? Where in the filesystem they are saved? Also what happens with that files if owner is changing…
In NextCloud generally the new files of the shared folders are saved in the share creators filesystem folder. In circles that’s not possible if you enable owner chances. Please tell me technically what happens here (don’t have the time to test the circles atm :/)

PS: As small solution in NextCloud 13 you could remove that filesystem structure by replacing the filename with a hash and then save your files in a general folder. Sub(-sub)folders could be created with the beginning letters of your hash. Advantage here is that files have no fixed owner and in encryption mode you have no unencrypted meta data anymore. Meta data could be saved encrypted with same file key in database or file system (for performance reasons I recommend first).

As of today, files are stored as usual (ie. in the files’ owner folder) like any other shares. There is no global/specific folder to a Circles. Anyone can share his own files to the circles. Like a group shares.

And what happens then with that files after changing the owner of the circle?

Nothing, however files won’t be shared anymore if the files’ owner is leaving the circle

Hm ok, does this makes sense with circles? It’s like a group where users are communicating and sharing files and the admin is leaving this group. After that files and communications are still available normally. Here it’s not.
Because of that I recommend solution for NC13 posted before. This would enhance file handling and security a lot :slight_smile:

Well it follows the basic principle that users control their own data. When they leave, they take it with them. Others can actively copy the data if they like but that’s an explicit action.

That would make it impossible for external storage to function the way it does - a lot of people (including myself) mount a NFS or something in Nextcloud but also still want access to the original files directly via NFS. Hashing the names of encrypted files is an ok idea but certainly not the normal files!

As a simple example, I have mounted some of my server storage via NFS on my desktop but also access the data through Nextcloud (which runs on that same server). If files created with Nextcloud would get a weird hash instead of their name the whole thing would be unusable.

Not really, those files should stay untouched because only mounted and not managed by NC. I’m only talking about the files which are managed by NC (encrypted, uploaded…). If files for example are encrypted on external device, then I’m also ok with that, because they are managed through NC. For me there are two types of external devices:

  1. Independent device
    This device is independent, it just mounts data into a folder, so the external files can be viewed and managed (edit, delete, share), through NC.
  2. Dependent device
    All files of this device are managed directly by NC. This device is thought as additional storage for the NC instance (adding more storage for customers, if you do not have enough on current server).