Seahub: Plugin Infrastructure for Web Interface

Hi everyone,

in the light of the deprecation of the Wiki feature and some of the requested improvements for the photo display functionality I want to propose and discuss having the possibility for extending Seahub in a clean and safe way without touching the core functionality.
I do absolutely understand that the developers want to focus on the core sync and share features and this proposal supports that.

My idea is basically to make it easy to install/update and use community-maintained plugins that provide extended functionality for the Seafile web interface (Seahub).
The system administrator would have to install the plugin on the server, maybe perform some system-wide configuration and maybe explicitly make it available to users.
Then a user could activate and configure plugins per repository.

My first two ideas for such plugins would include the Wiki functionality and some advanced Photo Gallery features.

I’d like to discuss this proposal here with you and maybe also have some input from the developers on the possiblities.

Best wishes,
Moritz

10 Likes

There are not many kinds of applications of such plugin system I can think of.

Currently, we are working on “data analysis” to make the system more intelligent, including:

  • Cleaning events log to make the it more accurate. Currently, there are items like “Added or modified” that is not user friendly.
  • Statistics
  • Smart notification, for example, if one user collaborate with another user on a certain folder, when a file is uploaded to that folder, the user will be notified. We will achieve this by analyzing the logs like file downloading, modification.
1 Like

…so let the community surprise you. :wink:

A “real” Wiki would be a great “proof of concept” for a plugin infrastructure.

It probably wouldn’t take much. As a developer, all I’d really want is the ability to load in some html pages, with css and javascript, and the ability to “associate” with files, and add links under the tools menu. Nothing big on the server side.

With that much, one could make plugins like:
File viewers/editors for any filetype,
Full Wiki functionality.
A plugin that enables users to host their own simple websites off the Seafile server.

Imagine for example a Seafile library BEING a web app that is read only for anyone you give a read only web link to, but developers can modify the files through the Seafile client, or even directly in their browser.
Would that not be amazing?

1 Like

I agree, this would be a great feature. Security/permissions would have to be thought about, but I can see endless potential for this (esp. if it would be designed in a generic enough way), and I’m 100% sure the community would come up with loads of interesting ideas, which might not be obvious from where we are at the moment.

First of all. Some public market for publishing plugins, but with approvement like App Store on iOS, so we will not end like Chrome extensions store full of extensions with backdoors, security problems and etc. But there should be ability to import own plugin for develop it and for companies internal plugins. But Seafile servers with these plugins should not be supported. Just easy, if you want to be supported USE payed approvment for private plugins. As developer I know that some skript kiddies write easy plugin which start dropping their instance and they run into helpdesk and screem about help and how sh*tty is whole software.

And now if you count this thinks which need to be implemented it will consume a lot of dev times. I think that first at all dev should stop adding new feature for a while and get all client stable and working, like seadrive stability, seadrive encryption and then solve some server bugs. After then start slowly developing new features.

Perhaps we should start with just adding a simple “EXPERIMENTAL” interface for HTML+JS+CSS plugins and building from there? If only Admin accounts can add them, then security won’t be an issue unless people start sharing plugins.

But that way, people can start making plugins now, and any market can be instantly filled when security is added. (much later)

Not sure if that’s a good idea. I think security needs to be thought about before-hand, in order to be able to come up with a good plugin/interface design, that stays stable. I don’t think that would be overly hard, though. Not trivial, but possible with a bit of work. Famous last words… :slight_smile:

I’d say this should need to be something different from seahub, a sandboxed plugin system that has access to the seafile server APIs, maybe later seahub can expose some APIs to fill out the rest. I think that’s the most sane way to do it.

Is there any update to this? Very interested in having more control over notifications.

@daniel.pan
any news on this topics?

For extending Seafile, you can use library API token feature to list files in any of your applications.

For extending UI in Seafile directly, I’m afraid we don’t have such a plan. Seafile is not designed for extending backend database and web UI. We are working on a new project for such a purpose. If you are interested, you can look at https://seatable.io/