The DocumentManagementService provides all functionality for DMS operations in an Stardust 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.
The following two server-side properties are available to allow
ID based access of documents and folders even outside the
predefined Stardust 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/.*)
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.