Availability of the new Tuleap Documents plugin (Tuleap Enterprise Edition only)

Almost 1 year ago we started a major redesign of one of the Tuleap tools: the document manager. We are super proud today to mark remove the “under dev flag” and to declare the General Availability. All Tuleap Enterprise users are encouraged to install and activate the tuleap-plugin-document package.

It’s a good opportunity to have a quick recap of this new plugin and more generally Document Management in Tuleap.

First of all, a bit of internal tech about how Document is built: it’s a Vue.js app built on top of docman REST routes. While the UI is only shipped with Tuleap Enterprise, all the REST routes (APIs) are part of the good old docman plugin. It means that anyone benefit from the API (if you built something with old SOAP API, you should consider switching).


In Tuleap, the Document Manager is designed to be a leightweight tool when comes the time for project members to easily share documentation. It’s designed to be what a team need to be able to publish documentation to “The World”. It’s not designed to replace the Enterprise documentation tooling (SharePoint, Alfresco, Documentum, etc). Most of the time those tools that are too complex when teammates “just” need to publish some docs. This is were Tuleap Document shines: simple, easy to use and compatible with Enterprise usage (fine-grained permissions, validation workflow, etc).

Organize your documentation in a tree structure and upload any kind of files.


You can create file with classic “browse button” as well as drag’n drop of one or several files from your local explorer. If allowed by site administrator, you can upload very large files (without any upper size limit) with support of upload resume when there are network issues. Site administrators that are constraint in disk space can configure quota that are defined and enforced per project.

You can create several type of documents:

  • Files: any doc you can upload (.odt, .xlsx, .xml…)
  • Links: any valid HTTP(S) URL
  • Embedded documents: write your document with WYSIWYG editor directly inside your web browser
  • Empty documents: they are alike placeholders. Empty docs can be transparently replaced by any other kind of “real” document when needed. One of the usage is to show that a specific document is awaited at this location (see below for more info and what’s new in 11.6 section).
Docman upload progression
Document manager upload progression


For all those documents, Tuleap keep a record of each version of the document and you can easily navigate through the history of the versions.

Documents comes with a bunch of properties that allows to better manage them. Projects can define their own properties (see after) but Tuleap define a bunch of them:

  • Permission: on individual folder or document (who can read, write or manage them)
  • Status: is your document in Draft or Active.
  • Locked: help to manage concurrent edits or to ensure a given file version is no longer modified.
  • Obsolescence date: documents might not live forever, set a “Best Before Date” and the document will disappear at the given date (just hidden, can still be retrieved!).
  • Approval table: gather the list of users that need to give you feedback on a given doc, Tuleap will remind them to give you an answer and keep track of the evolutions until final version.

Those properties are visible in the Quick Look preview on the right hand side of the interface

Projects can defined their own properties (either free text or list of values), those values can be made mandatory to enforce classification or inherted from the parent folder.

Want more? Go ahead and discover the last two features that are unveiled with Tuleap 11.6!

Types of documents
Types of documents
Document preview
Document “Quick look” preview
Custom properties
Custom properties


This section focus on the differences between Tuleap 11.5 and Tuleap 11.6:

Empty documents are handy when it comes to formal processes and certifications. Your internal process defines a set of document to be delivered (most of the time in a hierarchy of folders) at a given stage of your project maturity. With “Empty Documents”, the whole hierarchy can be defined at the beginning of the project (they are inherited so you can put them in a project template) and when the time comes to create the actual document, the “Empty” can become anything, a File, an Embedded doc, a Link, etc.

Document now comes with a “Quick Look” that displays metadata of the document on the right hand side of the screen. This view can now be shared with the link of the browser.

An empty document
An empty document


  • request #13887 Permanent validity is no longer a valid option at new UI document creation
  • request #13859 Document cannot be created when the obsolescence date is not enabled
  • request #13848 Redirect to the current folder instead of root folder when user switch to old UI when quick look is displayed
  • request #13847 Events should not be triggered if database insertion fail at version creation
  • request #13814 Underline letters in document title are truncated
  • request #13809 Remove unsupported use of v-bind in translated strings
  • request #13807 No access is logged when user accesses a document on the new UI
  • request #13805 drag an drop reset parent custom metadata
  • request #13802 The unlock event is raised in the history when we update an unlocked item via the new document plugin
  • request #13785 can not update properties of root folder
  • request #13779 remove underconstruction notice of docman REST routes
  • request #13778 remove no more need link to old properties in document moda
  • request #13777 properly instantiate date picker in document


  • story #13669 permission delegation for a read-only site admin (REST)

This new delegated permission is meant to be used for tools that need a complete read access to the platform (as a site administrator would have) but without the ability to modify anything.

This new permission only works for REST API access, for regular web browsing, the user is considered as a regular, unprivileged user.

This permission is handy for any kind of search / search engine integration.

Expose tracker artifacts that are visible in “My Artifact” personal widget.


The list of recently visited items now include the kanban boards and the scrum milestones with shortcuts to planning and cardwall views.

User’s history




Releases Stats

  • 4257 files changed, 97576 insertions(+), 46900 deletions(-)
  • They made the release (number of commits, author, company)
    • 185 Thomas Gerbet, Enalean
    • 148 Marie Ange Garnier, Enalean
    • 117 Nicolas Terray, Enalean
    • 83 Clarck Robinson, Enalean
    • 77 Yannis ROSSETTO, Enalean
    • 70 Joris Masson, Enalean
    • 17 Manuel VACELET, Enalean
    • 16 Martin Goyot, Enalean
    • 9 Thomas Gorka, Enalean
    • 8 Benjamin Dauton, Enalean
    • 2 lorentzr, Enalean
    • 1 Nouha TERZI, STMicroelectronics

Bug fix


  • request #13863 Anonymous user can gain access to resources in public project on instances not allowing anonymous user



  • request #13773 Dashboard styles should be separate from BurningParrot theme



  • request #13860 Embedded documentation index page does not fallback to /index.html


  • request #13815 Notifications of the bot Mattermost AgileDashboard plugin are not sent




  • request #13817 Burnup representation must not contains wrongly cached values
  • request #13816 Daily burnup event must not cache value before the timeperiod startdate


  • request #13849 Processes launched by the ROOT_DAILY system event should not timeout after 60 seconds
  • request #13808 ROOT_DAILY event should be launched only once per day (RHEL7)


  • request #13772 null is displayed as title of a node in graph of dependencies


  • request #13791 Timetracking personnal widget should allow user to retrieve its times for one day



  • request #13770 Displaying bug because of special characters added in the Purpose field while “Create a new user” process
  • request #13769 Displaying bug because of space added in the Login Name field while “Create a new user” process