Major changes in Seafile version 11.0

We are excited to share an early preview of some major enhancements coming in Seafile 11.0. This release focuses on streamlining Seafile’s architecture and paving the way for richer collaboration features.

Change of user identity

Previous Seafile versions directly used a user’s email address or SSO identity as their internal user ID.

Seafile 11.0 introduces virtual user IDs - random, internal identifiers like “adc023e7232240fcbb83b273e1d73d36@auth.local”. For new users, a virtual ID will be generated instead of directly using their email. A mapping between the email and virtual ID will be stored in the “profile_profile” database table.

For SSO users, in the old version, the identify from the SSO provider will be stored directly.

In the new version, for SSO users, a virtual ID will be generated instead of using the SSO identity directly. The mapping between SSO ID and virtual ID is stored in the “social_auth_usersocialauth” table.

The benefits of this change:

  • Users can change their external email or SSO ID more easily. Only the mapping table needs to be updated, not every instance of their ID across the system.
  • Allows a single user to login via multiple methods, by mapping their different external IDs to a single internal virtual ID.

Overall this brings more flexibility to handle user accounts and identity changes. Existing users will use the same old ID.

Reimplementation of LDAP Integration

Previous Seafile versions handled LDAP authentication in the ccnet-server component. In Seafile 11.0, LDAP is reimplemented within the Seahub Python codebase.

LDAP configuration has been moved from ccnet.conf to seahub_settings.py. The ccnet_db.LDAPImported table is no longer used - LDAP users are now stored in ccnet_db.EmailUsers along with other users.

Benefits of this new implementation:

  • Improved compatibility across different systems. Python code is more portable than the previous C implementation.
  • Consistent handling of users whether they login via LDAP or other methods like email/password.

File Activities Now Enabled in Community Edition

Previous Seafile Professional editions included the seaf-events component for tracking file activities and metadata. This has now been incorporated into the community edition in Seafile 11.0.

With seaf-events, the community edition gains several powerful features:

  • File activities - See historical changes, edits on files.
  • Smart links - Links to files are preserved even if the file is renamed or moved.
  • Improved versioning - Better handling of revisions, especially for Office documents.
  • Notification emails - Option to periodically send emails about unread notifications.

Bringing seaf-events into the Community server aligns the feature set across both editions. Users benefit from having robust activity tracking and metadata management available in all Seafile deployments.

A New Collaborative Online Editor - SeaDoc (alpha)

Seafile 11.0 introduces a powerful new collaborative document editor - SeaDoc (alpha version).

SeaDoc enables seamless co-editing and workflow management for documents stored in Seafile. Key features include:

  • Intuitive editing - An expressive editor optimized for productivity
  • Content workflows - Review and approve changes to control document evolution
  • Inter-document linking - Connect related documents together
  • AI integrations - Harness AI for content generation, summarization and management
  • APIs - Automate document creation and processing via comprehensive APIs

SeaDoc excels at:

  • Authoring in-depth technical/product manuals and documentation
  • Creating and managing knowledge base articles and wikis
  • Building internal documentation portals

With SeaDoc you can co-author, manage and publish high-quality documents directly from Seafile. Streamline your content creation and digitize your organization’s knowledge base.

The main editing interface:

Histories and changes:

Tables:

Block level operations:

Compared to OnlyOffice/CollaboraOnline, SeaDoc is optimized for lightweight text documents like meeting notes, wiki pages, technical docs etc. The focus is on simplicity, speed, and seamless knowledge management within Seafile. SeaDoc introduces capabilities like backlinks, and document networking on top of collaborative editing.

SQLite Database Support is dropped

Seafile 11.0 dropped using SQLite as the database. There are several reasons driving this change:

  • Focus on collaborative features - SQLite’s limitations make advanced concurrency and locking difficult, which collaborative editing requires. Different Seafile components need simultaneous database access.
  • Docker deployments - Our official Docker images do not support SQLite. MySQL is the preferred option.
  • Migration difficulties - Migrating SQLite databases to MySQL via SQL translation is unreliable.

By removing SQLite support, we can concentrate development efforts on enabling robust real-time collaboration. We suggest sites currently on SQLite to plan an upgrade to MySQL before upgrading to version 11.0.

Enhancing the Seafile User Interface

Early 11.x maintenance releases will include various UI refinements to enhance consistency and usability:

  • Cleaning up legacy interface elements
  • Standardizing fonts, icons, and branding
  • Improving mobile responsiveness
  • Adding animations and microinteractions

These changes lay the groundwork for a major UI upgrade planned for Seafile 12.0.

Final

A beta version will be available in September within a few weeks.

Please let us know your thoughts on the proposed changes and what else you would like to see improved in Seafile!

13 Likes

Are the new ldap and the collaboration editor also available in the community édition ?

Yes, the features will be in the community edition too.

2 Likes

It’s very exciting! Especially the work on user ID and LDAP, and the possibility to link an account to various authentication system.
The new file activities and collaborative editor are also very interesting.

To answer to what I would like to see improved, it’s the ability to make a share link editable anonymously with Collabora in Community Edition (yes, I know it’s in pro edition, in my non-profit organization with a strong free software choice, the pro edition is not an option). In my opinion, it’s the biggest missing feature of the Community Edition. Do you have plan to free this feature in the community edition?

And so I have the same question for the new collaborative editor: creating anonymous editing link for this new editor will it be possible in Community Edition?

Thanks a lot for your work, except this missing feature, Seafile is a very good peace of software!

Seafile 10 is already working very well with Debian 12 (tested on 2 servers in standalone mode).

Thanks for the feedback. We will consider to add editable share link in community edition.

These are some good changes.

Aa for other things, the main two I can think of that are missing are:

  1. Ability to use an SSO provider with accounts that use WebAuthn on Seadrive/Seafile Client, as I mentioned in another thread (currently the WebAuthn prompts are never shown, though I think they can be supported as QtWebEngine supports them).

  2. Web interface dark mode. Even better would be dark mode with automatic adherence to system theme.

I install most python dependencies using apt, if available (try apt install python3-thepackagename). And I installed the missing python3 packages using pip (yes with the --break-system-packages, but there is no system packages for this modules). The only pip installed python dependencies on my system are:

Package                Version
---------------------- -------
captcha                0.4
django-pylibmc         0.6.1
django-ranged-response 0.2.0
django-simple-captcha  0.5.18

All other are installed via apt. And I think you can also make a virtualenv and install dependencies inside it, to avoid the freaking “break-system-packages” message, but you then need to tweak your systemd startup configuration, to activate the virtualenv before starting Seafile (not a big deal).

1 Like

What’s the release strategy? So far we had 1 major version per year, now we get a beta of 11 already at September, but the community version for 10 only has one minor version 10.1. Is that because the community version 10 is stable enough because the issues corrected for the professional version aren’t supported anyway? Or do you fix community version later and assign fixes for the professional version in a single minor version, so 10.1 community corresponds with 10.9 professional?

I also found that the move from 9.x to 10.x forces clients to synchronize again.

The strategy has not been changed. It is still 1 major version per year. We usually publish a beta version before the end of a year. For example, 8.0.0 beta was published in 2021-11-17, 9.0.0 beta was published in 2022-11-11.

We publish a beta version in September (two months early) as there are many changes need to be tested. The stable version will still be in year 2024.

Is that because the community version 10 is stable enough because the issues corrected for the professional version aren’t supported anyway?

Yes. Most of the issues are related to pro edition features only. There are no major problems with the community edition.

This may be a special case in your setup. There is no report for such a problem in general.

Hello Daniel,
Thank you for this great update, especially regarding the inclusion of FILE activities features and the collaboration editor in the CE edition. Do you have an estimated timeframe for when the SEAFILE version 11 beta will be available?

We are still improving some details. A beta version should be available in October.

Thanks for your interesting in the collaboration editor, feedbacks will be welcomed.

The collaborative document, SeaDoc, can now be tested in https://demo.seafile.com/demo . You just need to create a file with suffix .sdoc.

It is still an early alpha version. Many details will be improved soon.

thanks, I will wait for it

Will the addition of seafevents to the community edition also include support for elastic search?

Search with ElasticSearch is not supported in community edition.

So as a feature request. Can we add filters on the History page, currently for a directory with alot of activity it is difficult to get to the exact point to revert the changes.

It is not easy to implement due to how the history is stored. But we will work on it in version 12.

Referring to: Deprecating SQLite Database Support
a) does this mean seafile 11 is the last version with sqlite support or is it already removed?

b) will there be a fix to the migration scripts, as the migration does not work at the moment:

trying to migrate a small 10 CE based installation, I get the errors below, and worse, with mariadb I get more errors than with mysql. both tests done with docker based mysql:latest and mariadb:latest images

MYSQL
ERROR 1406 (22001) at line 246 in file: ‘seahub-db.sql’: Data too long for column ‘token’ at row 1
ERROR 1406 (22001) at line 254 in file: ‘seahub-db.sql’: Data too long for column ‘token’ at row 1
ERROR 1064 (42000) at line 11956 in file: ‘seahub-db.sql’: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘, reporter text NOT NULL) ENGINE=INNODB’ at line 1
ERROR 1146 (42S02) at line 12207 in file: ‘seahub-db.sql’: Table ‘seahub_db.custom_share_permission’ doesn’t exist

MARIADB
ERROR 1005 (HY000) at line 50 in file: ‘seahub-db.sql’: Can’t create table seahub_db.base_filediscuss (errno: 150 “Foreign key constraint is incorrectly formed”)
ERROR 1005 (HY000) at line 135 in file: ‘seahub-db.sql’: Can’t create table seahub_db.message_usermsgattachment (errno: 150 “Foreign key constraint is incorrectly formed”)
ERROR 1406 (22001) at line 246 in file: ‘seahub-db.sql’: Data too long for column ‘token’ at row 1
ERROR 1406 (22001) at line 254 in file: ‘seahub-db.sql’: Data too long for column ‘token’ at row 1
ERROR 1005 (HY000) at line 479 in file: ‘seahub-db.sql’: Can’t create table seahub_db.post_office_log (errno: 150 “Foreign key constraint is incorrectly formed”)
ERROR 1005 (HY000) at line 482 in file: ‘seahub-db.sql’: Can’t create table seahub_db.post_office_attachment_emails (errno: 150 “Foreign key constraint is incorrectly formed”)
ERROR 1005 (HY000) at line 485 in file: ‘seahub-db.sql’: Can’t create table seahub_db.post_office_email (errno: 150 “Foreign key constraint is incorrectly formed”)
ERROR 1005 (HY000) at line 11843 in file: ‘seahub-db.sql’: Can’t create table seahub_db.auth_group_permissions (errno: 150 “Foreign key constraint is incorrectly formed”)
ERROR 1005 (HY000) at line 11846 in file: ‘seahub-db.sql’: Can’t create table seahub_db.auth_user_groups (errno: 150 “Foreign key constraint is incorrectly formed”)
ERROR 1005 (HY000) at line 11849 in file: ‘seahub-db.sql’: Can’t create table seahub_db.auth_user_user_permissions (errno: 150 “Foreign key constraint is incorrectly formed”)
ERROR 1005 (HY000) at line 11861 in file: ‘seahub-db.sql’: Can’t create table seahub_db.drafts_draftreviewer (errno: 150 “Foreign key constraint is incorrectly formed”)
ERROR 1064 (42000) at line 11956 in file: ‘seahub-db.sql’: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ’ reporter text NOT NULL) ENGINE=INNODB’ at line 1
ERROR 1146 (42S02) at line 11973 in file: ‘seahub-db.sql’: Table ‘seahub_db.base_filediscuss’ doesn’t exist
ERROR 1146 (42S02) at line 11975 in file: ‘seahub-db.sql’: Table ‘seahub_db.base_filediscuss’ doesn’t exist
ERROR 1146 (42S02) at line 12005 in file: ‘seahub-db.sql’: Table ‘seahub_db.message_usermsgattachment’ doesn’t exist
ERROR 1146 (42S02) at line 12007 in file: ‘seahub-db.sql’: Table ‘seahub_db.message_usermsgattachment’ doesn’t exist
ERROR 1146 (42S02) at line 12047 in file: ‘seahub-db.sql’: Table ‘seahub_db.post_office_log’ doesn’t exist
ERROR 1146 (42S02) at line 12049 in file: ‘seahub-db.sql’: Table ‘seahub_db.post_office_attachment_emails’ doesn’t exist
ERROR 1146 (42S02) at line 12051 in file: ‘seahub-db.sql’: Table ‘seahub_db.post_office_attachment_emails’ doesn’t exist
ERROR 1146 (42S02) at line 12053 in file: ‘seahub-db.sql’: Table ‘seahub_db.post_office_email’ doesn’t exist
ERROR 1146 (42S02) at line 12055 in file: ‘seahub-db.sql’: Table ‘seahub_db.post_office_email’ doesn’t exist
ERROR 1146 (42S02) at line 12057 in file: ‘seahub-db.sql’: Table ‘seahub_db.post_office_email’ doesn’t exist
ERROR 1146 (42S02) at line 12059 in file: ‘seahub-db.sql’: Table ‘seahub_db.post_office_email’ doesn’t exist
ERROR 1146 (42S02) at line 12061 in file: ‘seahub-db.sql’: Table ‘seahub_db.post_office_email’ doesn’t exist
ERROR 1146 (42S02) at line 12117 in file: ‘seahub-db.sql’: Table ‘seahub_db.auth_group_permissions’ doesn’t exist
ERROR 1146 (42S02) at line 12119 in file: ‘seahub-db.sql’: Table ‘seahub_db.auth_group_permissions’ doesn’t exist
ERROR 1146 (42S02) at line 12121 in file: ‘seahub-db.sql’: Table ‘seahub_db.auth_user_groups’ doesn’t exist
ERROR 1146 (42S02) at line 12123 in file: ‘seahub-db.sql’: Table ‘seahub_db.auth_user_groups’ doesn’t exist
ERROR 1146 (42S02) at line 12125 in file: ‘seahub-db.sql’: Table ‘seahub_db.auth_user_user_permissions’ doesn’t exist
ERROR 1146 (42S02) at line 12127 in file: ‘seahub-db.sql’: Table ‘seahub_db.auth_user_user_permissions’ doesn’t exist
ERROR 1146 (42S02) at line 12137 in file: ‘seahub-db.sql’: Table ‘seahub_db.drafts_draftreviewer’ doesn’t exist
ERROR 1146 (42S02) at line 12139 in file: ‘seahub-db.sql’: Table ‘seahub_db.drafts_draftreviewer’ doesn’t exist
ERROR 1146 (42S02) at line 12207 in file: ‘seahub-db.sql’: Table ‘seahub_db.custom_share_permission’ doesn’t exist

Seafile 11 is the latest version with sqlite support.

We will check the issue.