Document Service API

The DocumentManagementService provides all functionality for DMS operations in an Infinity Process Platform runtime environment.

This includes:

For details on the usage of the functionality of this service, refer to chapter Managing Documents and Folders in the Programming Guide.

Specifying a Path Pattern for Document Access

The following two server-side properties are available to allow ID based access of documents and folders even outside the predefined Infinity Process Platform partition path (/ipp-repository/partitions/<partitionId>):

The specified pattern allows ID based access on read only methods of the DocumentManagementService like getDocument, getFolder etc.

The DocumentManagement.WriteAllowed.PathPattern defines the access of methods modifying data like updateDocument, updateFolder, versionDocument, removeDocument, removeFolder etc..

Example patterns:

DocumentManagement.ReadAllowed.PathPattern=(/{PARTITION_ID}/reports/.*)|(/{PARTITION_ID}/designs/.*)
DocumentManagement.WriteAllowed.PathPattern=(/{PARTITION_ID}/reports/.*)|(/{PARTITION_ID}/uploads/.*)

Implicitly Created Folders

Some folders that do not exist yet in the repository, can be already used for reading and will not be created in the repository unless they are needed explicitly. The following table shows these paths and the according UID they are given during getFolder operations:

UID Repository Path Permission set on Creation
{uid:nonexistent-root-folder} /ipp-repository/partitions/<partitionId>
{uid:nonexistent-partition-process-instances-folder} /ipp-repository/partitions/<partitionId>/process-instances everyone = ALL
{uid:nonexistent-partition-documents-folder} /ipp-repository/partitions/<partitionId>/documents
{uid:nonexistent-user-folder} /ipp-repository/partitions/<partitionId>/realms/<realmId>/users/<userId> everyone = ALL

In case a getFolder method with one of these paths as folder IDs is called, and this path does not exist yet in the repository, a folder object containing the specified UID is returned. As soon as a document or folder is created (via createDocument or createFolder) as a sub-folder of such a non-existing folder, this folder is also created as real persistent JCR folder in the repository. The folder is also created in case you try to set a policy on it.