2014-12-02

Pydio 6 – Major Stable Release

The Pydio Team is thrilled to announce Pydio 6, a major stable release. Main features include a full UX reloaded, new server capabilities to enable sync with the future PydioSync client, an analytics dashboard for admins, and many, many more.

You can have a complete product tour here.

Date: Dec, 3rd 2014

License: Affero GPL

Download: Sourceforge Project

Source Code: Github Project

Copyright: Abstrium SAS / Charles du Jeu 2014

Upgrade: In-app upgrade for archives installs – RPM/DEB require manual script upgrade (see below)

Contributors: Thomas Nicot (UX), Charles du Jeu, Tran The Cuong, Jabar Karim, Stephane Ruhlman, Nicolas Pouliquen, Pär Strindevall, Martin Schaible, Lawrence Ho, Arnold van Blanken, Marco De Pardi, Anael Mobilia, Dmitri Bosenko, Florian Vogt, Gerrit Pannek, Max Ruman, Stefan Huber, Christian Foellmann, John Regan, Sylvain Mandon, Gerald Me, Matthieu Simon, Florian Huwyler, Aaron Guggisberg, Stefan Wüthrich, Teki Imai, Nicola Mustone, Mike Rhyner, Mike Smorul,Pablo Daniel Rey, Steve Ludovicy, Lukasz Lis.



The new welcome page

Upgrade Process

IMPORTANT: if you are using the following plugins: auth.serial_otp, auth.cas, auth.basic_http, PLEASE DO NOT UPGRADE NOW as they must be replaced by their new ‘authfront’ counterparts. Please read more on this How-To.

Archive-based installs (zip/tar.gz):

From 5.2.5: automatic with in-app upgrade. Make sure to backup both your DB and your files.

From 5.3.4(dev): automatic with in-app upgrade, only files are impacted.

Linux packages (deb/rpm) – Please READ

Please read the detailed upgrade how-to here. Baseline is that the apt-get/yum will not update DB.

New features highlight

End-User Experience

Calm, uncluttered welcome page with video guides linked in the user interface

Workspace screens entirely reworked for a more intuitive experience with a focus on day-to-day actions

Files can be previewed in the interface with no need to download

Ground up reworking of sharing options

Control and Administration

New analytics dashboard with more detailed Logs

Actions/parameters for all plug-ins now customisable on a per-user/per-role/per-group basis

LDAP: Groups mapping to Pydio roles with the ability to handle multiple-group schemas

One-time-password is now working on any authenticated backend

Integration with DuoSecurity for dual-factor authentication

New plugin for validating a disclaimer before using the platform.

Independent authentication for frontend plugins and backend data

For Developers

Consistent APIs and real RESTful access

Scalability reworked to support massive fleets of users and workspaces

New Backend Storage Plugins for Cloud/Object Storage (S3, Ceph and Swift)

New plugins custom_db & cyphered_post for easy connect with in-house systems

Full Changelog

Add image rotation using exif information (details)

Added auth plugin for radius. (details)

Remove last commit because wrong branch (details)

Add a small Backbone extension to enable URL routing (details)

Add a node.index hook and use it in the meta.syncable. We should probably split index.lucene into a core component browsing recursively and the implementation using lucene. (details)

Make sure the slug is applied at workspace creation even if from a template. (details)

Make sure mkfile is compatible with the node signature (details)

Higher filtering level for filename (details)

Rewrite pattern update ‘starts with’ (details)

Fix tabs re-opening / Fix ‘circular JSON structure’ error by filtering data before saving. (details)

Do not remove all whitespaces, too restrictive (details)

Activate rest for stat_hash action (details)

Pass application Root for history manager. We should have an htaccess generation at install, as it’s getting more complicated to configure. (details)

Update htaccess comment (details)

Create a template for htaccess, should be generated at install time (details)

Add methods for recursive search of metadata and implement this by hooking into ShareCenter to make sure shared workspaces are synchronized to their parent and the other way. Added some performance optimizations on the way, to be extensively tested, could have some side-effects. Remove some debugging in AJXP_Cache (details)

AJXP_Node: collect many metadata namespace at once Implement recursion in meta.watch > to be tested extensively (details)

Make sure parent node is detected as non-leaf in notif fix #449 and fix #451 in dev branch (details)

Add an option to fix #195 : force all emails to be sent by a unique adress (details)

Detect Backbone before starting the router Attach mobile scroll in AjxpSimpleTabs Fix #373 Date modified sorting wrong Fix some small umbra/oxygen tweaks, especially the fact that if you turn this inadvertently you cannot go back… (details)

Fix icon for folders in notification feed Fix some ie8 error, dashboard is still unusable. (details)

Resplit LOG field into source, message and params – Close #483 Upgrade to be tested on PostgreSQL (details)

Fix PowerFS charset problems (details)

Should fix some errors with nodes parameter array when sending to background (details)

Sanitize and decode archive name (see #480) (details)

Add a parameter for optionally loading some JS frameworks before anything else. Leave it empty by default for the moment, to avoid letting people load backbone without knowledge. (details)

Previous FilesList commit broke the scrolling (details)

Revert the $plugin instance cloning, broke the REST api. Instead, make sure to reload node driver on original node after applying forward event. (details)

Meta.exif : ignore UndefinedTag: key (details)

WS selector: visually show that element was selected (details)

Handle a path filter on the changes feed to synchronize only a subfolder (cherry picked from commit e3b580c) (details)

Make sure to update $lastSeq if we “continue” the loop (cherry picked from commit 0ea7b2d) (details)

Make sure the like $filter expression ends up with a slash, otherwise it can take files beginning with the same prefix. (cherry picked from commit 5f8f7a0) (details)

Zoho Editor is broken when not using the “External Agent” (details)

Fix key max length is 1000 bytes for mysql, plus fields length consistency (details)

Quick integration of the analytics SQL queries. Warning, they are working on the old tables formats, to be updated. (details)

Keep the right order (details)

Add titles (details)

Change cursor system / create empty values when there is no value on a given date. (details)

Make queries compatible with both tables format (before and after update) by simply searching on message or params. (details)

Fix hasGroupMapping test using empty() function, can lead to a false positive if an empty string. (details)

Make sure to encode labels as UTF-8. (details)

Bar plots and Figures. (details)

Add some figures (details)

Bring some life to analytics dashboard (details)

Fix color index modulo compute (details)

Fix HTML5 folder uploads issues, enable it for Mac (details)

Fix SQL analytics date cursor (include last day) (details)

Let the ajxp_user ( = dashboard ) repository always “accessible”. (details)

Update comment (details)

Make sure to clone the original personal role before overriding. Re-apply specific “Shared” roles after clearing parent user’s ACLs in case of a shared user. (details)

Re-revert the isMac test for webkitGetAsEntry, otherwise utf8 files are skipped on MacOS. (details)

Fix #496 : clear metadata when a shared link is expired (by date or number of downloads) (details)

core.mailer: Make sure to add a typed email to the list of “to”, if people don’t explicitely click on the auto-complete list. (details)

Admin : restrict Parameters & Actions edition when logged user is a groupAdmin (not super admin). Only parameters with a scope are allowed. (details)

Disable old “Shared Elements” workspace by default (will be removed at one point) (details)

Fix #418 : duplicate functions loadPublicletData & clearExpiredFiles, all moved to ShareCenter Fix events applied to various nodes : we must reset the AJXP_Controller xPath to make sure the hooks are cleaned up as well. Should be reimplemented in an event-based pattern. (details)

Ajxp_user : reload shared files list after clearing expired / Fix list object ID (details)

Update AJXP_Logger::debug() calls (details)

[edito.pixlr] Fix #500, properly close editor tab after saving (details)

Update default repositories with last features (details)

Fix rest URI computation (details)

Todo: implement indexNode method (details)

Test hidden files during the filterFile() call when building Zips – Fix #532 (details)

Use SystemTextEncoding::magicDequote insteaod of decodeSecureMagic when handling json data, it MUST be utf-8 for json_decode function – Fix #529 (details)

Manually merge #300 : exif rotation (details)

Manual merge of #300 exif rotation (details)

Editor.diaporama : exif rotation changes broke ImageViewer (extending Diaporama) (details)

Massive refactoring: generalize usage of UserSelection object instead of always parsing the $httpVars[“file”] variable. Prepend base64 encoded versions for auto-detection, should be backward-compatible. (details)

Add new carrousel-like display mode for file list : horizontalScroll and fit:content (details)

Folder “Recycle_bin” must be Hidden with attribute “H” if Windows OS (details)

GUI : AjxpTabulator: new option uniqueTab will always replace existing editor in tab. FilesList: call fit:content inside resizeThumbnails() function Last compile (details)

Ability to define many templates for the minisites (name must begin with minisite_) and user can choose. Sample template is Film Strip, super simple. (details)

Replace “Download All” icon with archive otherwise when no text Download and Download All conflict. (details)

Fix share height (details)

WebODF: Use ajxpServerAccessPath instead hardcoding index.php (details)

- see result here #510 – rebuilt with branch “develop” (details)

Attach ContentFilter to a repository – Save it as serialized option for conf.sql (details)

Implement same filterings when listing only one or N specific nodes, instead of browsing a folder. Make shell_exec call silent on windows. (details)

WIP: modularization of sharing features. Put the templates back in action.share instead of gui.ajax – Split the share action into many actions the will appear in the menu depending on the selection. Remove old clientForm, TODO make sure everything is working on “Umbra”. (details)

Notification list: back from 600 to 350 @ellega (details)

Forgotten print_r in PThumb.lib.php (details)

Fix film strip on mobile device => fix various diaporama stuff (details)

Reproduce the “background image” of the current public link page directly as an AjxpPane option. WIP : make a “download page” template to replace public_links php file. (details)

Don’t preg_quote() and later stripslashes(), move preg_quote in the right places (details)

Use self:: instead of AuthService:: in AuthService (details)

Replace eval with constant in getConfInst (details)

Move regexpToLike to AJXP_Utils (details)

Introduce cleanRegexp() (details)

New option in Auth to preset a login, providing a password-only protection for minisites (details)

Reput the main templates in gui.ajax instead of action.share, otherwise they can be not found. (details)

Make all calls to ShareCenter no more static, and split this class into a new ShareStore class, that will implement a DB-based storage (and maintain backward compat to publiclets). Add a download preProcessor to count the downloads. (details)

Introduce likeToLike and cleanLike in AJXP_Utils (details)

getUsersCount auth.sql: use dibi … again (details)

Stop restraining search by putting ^ (details)

Download page (details)

Minisites & publiclinks convergence, use simpleStoreGet/Set/List methods to store shares in the DB. (details)

Fix pending login mechanism. Still somethig todo with various sessions opened. (details)

fix Jumploader (details)

fix Jumploader (details)

Revert “fix Jumploader” (details)

fix Jumploader (details)

fix Jumploader (details)

Revert “fix Jumploader” (details)

fix ldap build group branch (details)

json_encode object-like options when sending repository options. (details)

Never store share meta on root node. (details)

Massive rework of the shares storage & metadata => ability to build many links/workspace on each node, ability to move nodes without breaking (at least nodes directly shared, should be expanded to the children…), event forwarding to shared workspaces. To be tested extensively, particularly migration from old metadata format to new one. To be tested : URL shorteners. (details)

One session per window in minisite makes it more convenient. Could be generalized to standard window. (details)

Check if node exists when send unique file. (details)

Do not use func()[0] for old php versions (details)

AjxpPane image background: get defaultImage from parameter (details)

ShareCenter: always write the RewriteRules in the htaccess. Set default images for download link. (details)

ActionsManager / ActionsToolbar refactoring to handle a “local” datamodel. To be even more simplified if possible. Use it in RepositoryEditor to display a tab with all shares of the current edited workspace. (details)

Change depandancy of action.cart (details)

Conf/Auth driver : use a “ajxp.hidden” property to generally ignore all internal users created by minisites. Add powerfull methods to query repositories (directly in sql when possible). (details)

Encapsulate new listRepositoriesWithCriteria() methods in ConfService. Use in ajxp_conf (details)

Use new methods in action.share and access.ajxp_conf In ShareStore methods, pass userId instead of object. (details)

Silently ignore wrong results in lucene. (details)

Make sure the user object is not null – see previous commits. (details)

Do not authorize ajxp_user repo by default ( = dashboard ) Disable “switch_to_dashboard_action” if repo is not allowed. (details)

Update TPL access. Should be written at install time, along with the default charset. (details)

Base for repository-specific authentication via a prompt dialog. Test in FTP by uncommenting the line. Could be used for the dropbox stuff. (details)

Use html fullScreen (details)

Fix RESTfull mkfile – too harsh sanitization clears the slashes in path (details)

Fix minisite session detection (starts with AjaXplorer_Shared, not necessarily exactly that word) (details)

Bug: dblclick was triggered twice on non-ie browsers (details)

AbstractEditor last change: use className instead of class. (details)

Update docblocks (details)

Definitely set skipBubbling and skipCarousel to true by default – to be checked against mobile (details)

Update ajxp_ role / plugin / repository editors. (details)

Fix ajxp_conf layout resizing always showing some blank at the bottom, resize just after insertion. (details)

Make sure share action does not appear in a menu (details)

Fix minisite layouts initial loading (details)

Create a static function to get ShareCenter instance (enabling the docblocks). Use it where possible. Start a readonly mode for ShareCenter.js (details)

Display workspace alias, we could probably remove the unique ID (details)

Test setting a user inside an AJXP_Node – could be used to impersonate a user instead of using logUser() (details)

Carry on moving every actions / data concerning the shares inside the ShareCenter, out of ajxp_conf and presumabyl out of ajxp_user (details)

Fix share actions (details)

Clean ShareCenter (details)

Fix passing 0 as related_object_id value to simpleStore (details)

ShareCenter i18n / hide upload box for files. (details)

Wrong call to list reload, triggers too much repainting (details)

Update tags by directly setting them inside the shareData if possible, in the metadata otherwise. (details)

Do not “enlargeToOwn” the events – check that it has no side effect (details)

Fix share watch (details)

Fix #538 Missing node.read in access.fs when reading unique nodes (details)

Set up a datamodel-specific ActionsToolbar via XML. No more reference to sharing in ajxp_conf. Use datamodel-specific listings in My Shares dashboard tab and load from ShareCenter. (details)

Last compile (details)

Replace /node+ by /dir+ in the rest params, very strange it was probably broken. (details)

Fix error in array_merge messing up with numeric keys. (details)

First implementation of Auth Front End, simple impl of a keystore-based auth for the REST api. (details)

Move get_xml_registry (and alias “state” action) in core.conf instead of gui.ajax, should not be there. (details)

Implement RestAPI token-based authentication. Last todo is to check the nonce is never reused. Add ORDER parameter in auth frontends plugins to make sure they are called in the correct order. Introduce a specific /pydio/ path to query API for non-workspaces actions. To be documented and checked when generating workspace slugs. (details)

ApikeyPane (details)

Rework startup. Set Encoding and server URI via installer. Activate syncable features, rest API and backbone router by default. (details)

Try to load dynamic file encoding.php (details)

Create SessionLogin authentication frontend and replace core.auth actions. To be checked in all auth.* plugins Add a “PROTOCOL_TYPE” parameter to the auth frontends, to auto activate frontend for session-based or rest-based access points. (details)

Fix startup installer (details)

Remove share on node deletion. (details)

Fix shared repositories listing problems (details)

Re-adapt ftp special login screen in Auth.ftp driver (details)

Forgot captcha Fix \ in new install web uri detection Adapt auth.multi (override login action) (details)

MQObserver switching channels: always avoid using sendSync! (details)

Oups unreferenced configs variable (details)

Make sure to make the repository slugs unique – should be part of a futur upgrade script Hack shareCenter to display all actions in admin driver Sort plugins by name in actions lists (details)

Removed all calls to ConfService::getRepository() in meta-like plugins (meta, metastore, index), as we have the RESTfull info from the passed accessDriver. Should be expanded to editors as well. (details)

Fix Session Credentials & WebDAV Basic Auth (details)

Print exception message when there is a stream_open error. (details)

Meta.mount : check command result instead of re-running a second mount cmd. (details)

beforeInitMeta has a new signature (details)

Log invalid login attempts. (details)

[SQL] Remove ajxp_simple_store create from mq.sql (details)

Also log invalid login attemps via WebDAV. (details)

Finished Italian translation for plugin ‘core.ajaxplorer’ and added the new one for ‘access.fs’ (details)

FIX previous commit. (details)

Added Italian translation for ‘access.ajxp_conf’ plugin (details)

Make sure URI is totally URLEncoded by calling urldecode / rawurlencode to compute the correct hash. Fix pydio/pydio-sync/#26 (details)

Italian translation for ‘access.ajxp_shared’ plugin (details)

Added Italian translation for plugin ‘access.ajxp_user’ (details)

Italian translation for ‘access.demo’ plugin (details)

Italian translation for ‘access.dropbox’ plugin (details)

Italian translation for plugin ‘access.ftp’ (details)

Added Italian translation for ‘access.hpcloud’ plugin (details)

Italian translation for plugin ‘access.imap’ (details)

Italian translation for plugin ‘access.jsapi’ (details)

Italian translation for ‘access.mysql’ plugin (details)

Massive refactorings to never ever load all users, all roles, or all repositories at once. Necessary for scalability. (details)

Italian translation for plugin ‘access.remote_fs’ (details)

Italian translation for ‘access.s3′ plugin (details)

Italian translation for ‘access.sftp’ plugin (details)

Italian translation for ‘access.sftp_psl’ plugin (details)

Italian translation for ‘access.smb’ plugin (details)

Added encodeURIComponent() on the file path url (details)

Added encodeURIComponent() on file and dir url (details)

Hook node indexation to changes tracking. We should probably have a parent indexation core plugin, extended by lucene, change tracker, and elasticsearch. Make sure to exclude recycle_bin from indexation for synchro (details)

Remove dependency of authfront.session_login to gui.ajax – we use protocol detection anyway. (details)

Add an optional stream=true parameter to the changes request. Json data is return one per line, the result is not real json but it can be that way easily “streamed” by consuming clients. (details)

Filehasher: publish rsync extension support through a plugin exposed parameter – document sdk methods for rest access. (details)

Fix event sent when appending data to an existing file (must be an update instead of a create) (details)

Transform auth.cas into an authfront plugin. Expand CAS feature (details)

Update manifest.xml (details)

Italian translation for plugin ‘access.webdav’ (details)

Italian translation for plugin ‘access.wms’ (details)

Italian translation for plygin ‘action.avatar’ (details)

Italian translation for plugin ‘action.cart’ (details)

Publish repository-scope parameters in the writeRepositoriesData() function – Add such a parameter in the meta.syncable plugin, to disallow sync on given workspaces (details)

Silently delete failing alert to avoid filling error logs (details)

Prevent null pointer (details)

Do not cache query result (details)

Fix repository-exposed caching (details)

Flatten repository-scope props differently, makes it easier to search (details)

Italian translation for plugin ‘action.powerfs’ (details)

Italian translation for plugin ‘action.quicksend’ (details)

Italian translation for plugin ‘action.scheduler’ (details)

Fix CAS authfront plugin (details)

Fix icon problem (details)

Allow WS creation on read-only FS if option CREATE is not set. (details)

Carry on fixing bottlenecks when tons of users and repositories. Avoid loading repository list if not necessary. Make sure to apply limit when loading users through autocompleter. Fix regexp (must start with ^) (details)

Fix WebDAV enabler & password form (close #556) (details)

Fix canSwitchTo() method – make sure to include shared workspaces (details)

Chase Pydio in users strings – Replace by APPLICATION_TITLE, except for About … (details)

Sharing : move link at the top of the dialog, add all necessary paramaters. Detect legacy publiclink or not to avoid blinking (details)

When using download_form, passing query parameters through the action attribute does not work in IE or FF. (details)

Fix password-protected minisite behaviours (details)

Fix minisite_session parameter management (details)

Refix share pane size (details)

Make sure the router always keep the / when navigating to root, otherwise requests are sent to the upper folder. (details)

Add json possible value to the format parameter for get_my_feed request (details)

Make sure to updateAdminRights for admin user first creation We do have to load all repositories once for editing a role (details)

Update share panel layout, set link at the top (details)

Fix radio button problem in Role Editor (details)

Minisite.php layout was missing the animate-css library (details)

Fix PLUpload chunk size (details)

Update release note for 5.3.1 (details)

Add another parameter “flatten” to get all changes or pre-flatten them server-side (details)

5.3.1 Dev release note (details)

Add an ability to mkdirs in a “bulk” mode (details)

Try an auto upgrade script for SQL for 5.3.1 (details)

Reformat update script (details)

Typo in SQL UpgradeDB step. Probably non-functionnal in 5.2.3 ! (details)

Reformat update script (details)

Put SQL update directly in PHP update code instead of SQL file (details)

Update only if driver is Mysql (details)

Send additionnal warnings before upgrading to dev version (details)

Fix apache pydio.conf for RPM (details)

i18n: RADIUS authentication, add german, fix english (details)

i18n: Add first wizard screen in german (details)

i18n: Add german translation of config screen (details)

boot.conf: Fix erroneous labels of user display name (details)

boot.conf: Improve display name use more consistent (details)

boot.conf: Introduce tooltip for Mail address (details)

boot.conf: Connexion -> Connection (details)

boot.conf: Terminology for configuration store (details)

boot.conf: Proposed improvement on user guidance (details)

FIX: S3 driver does not handle minisite path correctly (details)

Check-in a brand new theme (details)

New theme (details)

FilesList: apply fitHeightToBottom only if option is set. (details)

Breadcrumb: pass options for different breadcrumb (details)

ActionToolbars: set the “more” button inside “get” group, not “put” Hide tree images in orbit theme (details)

Orbit theme tries (details)

Fix compilation problems (details)

Upload action now ask for the uploader type. Downloader.http moved as an uploader. Add some color in orbit theme. (details)

textLogDriver: small fix (details)

Orbit – Follow up (details)

Orbit Compilation (details)

Droppable (details)

Fix dashboard for Orbit (details)

Update language (details)

Change how layout is built in Orbit theme. Basic “group by” implementation for FilesList, applied to the notification/alert list Reload a FetchedResultPane in a discrete mode. Fix ajxpTabsCount value in AjxpTabulator Send IM to trigger user feed reloading. TODO: Still to disable the polling, not clear why it’s still running. (details)

Thomas repaint (details)

Move flexTo option to AjxpPane Use an ajxp_description metadata to override other metadatas in details view Last Css update (details)

Update InfoPanel for a better “dataviz” style (details)

Wire up ‘ACTIVITY’ (details)

Prepare a countUsersForRepository() method to display info about workspaces (details)

Massive changes: split ajxp_user into ajxp_home ( = welcome page ) and ajxp_user ( = profile, settings, etc ) (details)

Add welcome page (details)

Hi Res photos (details)

Pass resize_events to AjxpPane Pass menuOffsetLeft/Top to UserWidget (details)

Define various opensans fontfaces (details)

4 variants of OpenSans (details)

Keep only two OpenSans variants to limit the size (details)

Add OpenSans fonts – tweak style again (details)

Work on InfoPanel > set “open” and “share” actions in the info panel (details)

Fix breadcrumb multiple refresh button Make sure not to add many observers on the clickable “home” button (details)

Rework search engine results Rework left pane scroller (details)

Rework thumbnail display (adjust to list width) (details)

Make tabulator string shorter (max 25 chars) (details)

Update standard form (details)

Standard form, admin panel, editors (<a href="http://github.com/pydio/pydio-core/commit/b38f70eb268f146

Show more