Doksi 0.7.0 has been released

The latest version of Doksi brings some enterprisey features such as RBAC (Role-based Access Control) for Teams, meta data when showing documents, including statistics, dynamic content with JSON and templating, and much more.

Dynamic content

A nice pattern to follow is to have a single source of truth. That means that data resides in a single location, and that you then have multiple clients accessing and processing that data.

One example would be a version number. You do not want to write this number down in a multitude of places, only to end up in a state where you have changed some but not all, and it is no longer clear what the actual version number is supposed to be.

A better way is to define this number in a single location, and then consume that number whenever you need to do something with it, like putting it in your documentation.

With Doksi you can now do this by enabling dynamic content for the document and pointing it to a JSON URL where the data can be consumed. You can then use Jinja to process and present this data in your documents.

There are many applications for this apart from showing version numbers:

  1. Include in your document the results of automated tests that were run in your CI pipeline.
  2. Automatically generate documentation for your code or API
  3. Include data that is constantly changing such as the latest sales numbers, without having to manually keep the documents up to date.

Role-Based Access Control

Roles

In our quest to make Doksi fit the enterprise we have added RBAC for Teams. Allowing administrators to create Roles which Team administrator can then use to assign rights to Team members.

Team membership role

It works like this:

  1. A Role contains a list of Privileges.
  2. A Privilege defines a Verb that is allowed on a class of Resource. For example edit a Team.
  3. Role membership (the relation between a User and a Team) is associated with a Role.

We plan on expanding the usage of Roles to replace the current Permission model for sharing documents, and also control administrative rights of Doksi itself.

A lot of redesigns

In version 0.7.0 we have redesigned a lot of pages to make them more coherent with each other. The pill navbar that started out in the admin area is now present at both User settings, Team settings and when viewing a Document.

Redesigned navbar

We have also redesigned the top navbar to make it more subitle by making it a bit shorter and giving the searchbar a blue background.

Meta data and statistics

Document meta data

The meta data that is assigned to documents, such as classification, status, properties and owner, is now displayed when viewing the document. Previously this was only shown when editing the document but now it can also be read by those who do not have edit access.

In addition, we have also added document statistics such as the number of words, sentences and characters. This is only shown on unencrypted documents, since the server has no way of calculating these values from the encrypted ciphertext.

Custom properties

User properties

Previously only administrators could create custom Properties that can be assigned to Documents. But in version 0.7.0 Properties work the same way as Classifications and Statuses, in that they can also be created on the settings pages for Users or Teams, allowing documents owned by these to assign those Properties as well, in addition to the global Properties.

New block type: Raw ReST

Raw ReST

Lastly, we have added a new block type which is really the end-all be-all of block types: raw ReST.

By using Raw ReST you can now give your document any ReST content without having to be restricted to the block types we have defined such as Paragraphs, Images, Tables, etc. This also means that you can do for example Tables in a manner different than our Table block does it, for example with more advanced cell or row spans.

Bug fixes

The following bugs have been fixed in 0.7.0:

  • The user gravatar in the navbar menu was the same for all users.
  • The LinkedIn link on user pages did not work.
  • It was not possible to edit team documents.
  • Paragraphs of types tips, warnings and notes were not rendered properly when exported.
  • Buttons for edit and delete was shown on teams even though the user was not allowed to perform those actions.