Technical overview

Pincette is a WebDAV-system built from the ground up in Java. It is deployed in a Tomcat application server. The following WebDAV RFCs are implemented:

Other open standards implemented by Pincette are:

Pincette is completely stateless and transactional, which means that any modifications of the data, documents included, are done in a transactional database. Data and file corruption are therefore not possible. Another consequence is that Pincette is very scalable. You can freely add instances and load-balance over them. There is no complicated session or state management getting in the way. Moreover, no state means no memory. Only some modules that manipulate documents for extracting previews, text, etc. require memory proportional to the document size. Other than that the memory footprint of Pincette is very small.

Extensions

You can extend Pincette by writing modules for it. Modules are installed by uploading them somewhere under the /configuration/ folder in Pincette itself and declaring their existence by modifying the central configuration file that is in that folder. So you don't need any back-door access to add modules. The advanced versioning and labelling features that are available for documents and folders also apply to modules. When anything changes they are reloaded dynamically. Each module lives in its own class loader.

Most modules can be configured to operate starting from particular folders and/or for particular media types. There are modules for the following functions in Pincette:

Integration features

The best integration feature probably is the fact that every document and folder has a URL. This is the most standard way to link a document into some other environment. The URL namespace is completely under control of the users.

Since Pincette sits in Tomcat it benefits from the possibility to use and build various authenthicators. On top of that the OAuth 2.0 implementation makes it possible to create a modern single sign-on environment.

In the browser Pincette functionality can be embedded in any web-page through Pincette's jQuery plugin. Multiple instances can be deployed on the same page and styling is completely open via CSS.

Back-office integrations are possible through a WebDAV-API. There are several and in different kinds of technologies. Pincette can also be hidden behind an application as a document store. In that case there is trust relationship between the application and Pincette, in which the application can use Pincette's system user to act on behalf of a real user through a special HTTP-header.