DocuShare
A content management system developed by Xerox Corporation. 3Sixty supports connection to DocuShare versions 7.0 and newer.
Connecting to DocuShare
When setting up DocuShare, make sure you open all the rmi access ports for the DocuShare server. RMI will establish communication via the server port configured (defaults to 1099), however continued transmission takes place on random high number ports.
Tip: CONNECTION ISSUES
If you suspect a firewall is causing connection issues, open all ports and use ip restrictions to the 3Sixty server in order to restrict unwanted access.
Encrypted Content
If you are using encryption on content in your environment you will need to add the cryptoContent.jar from your DocuShare class path to 3Sixty's class path.
Access and Permissions
When accessing content with a system user, the user assigned should be a Content Administrator. This will ensure you have the appropriate access to read all content and all collections. You can add your system user to the Content Administrators group to give them the appropriate level of access.
Other Resources for Developers
Download API documentation and other developer resources by signing up here: Xerox DocuShare
Authentication Connection
Used to authenticate repository/output connections that need certain authentication fields like access tokens or refresh tokens. Click here for more information on setting up Authentication Connections.
Authentication Connection Fields
-
Name: This is a unique name given to the connector instance upon creation.
-
Username: The username of a user with privileges to access targeted content
-
Password: The user's password.
-
Server URL: The host url without protocol. (RMI is used, no protocol is necessary)
-
Server Port: The port to use when establishing an RMI connection with DocuShare. Defaults to 1099. The port used to establish the initial communication to DocuShare may not be the same port used to execute requests.
-
Domain: The domain for the target directories. Out-of-the-box this is set to DocuShare
Discovery Connector
Discovery is the 2nd step in the integration process. Create an instance, select a connector and a schema will be produced based on the connector's configuration. Includes a list of all object types as well as attributes stored in each. This function discovers schemas on the remote system. These are tables, columns, object types, aspects, categories, content types, index fields, etc... More info
Discovery Instance Configuration Fields
-
Name: Unique name for your connector
-
Authentication Connection: Select the auth connector for this discovery
-
Ignore Types (comma delimited list): Chose document types to ignore when running discovery
Integration Connection
The DocuShare Integration Connection must include a DocuShare Authentication Connector in order to connect. Once added to a job, you will be able to configure the location of your DocuShare data in the Job Specification. Click here for more information on setting up Integration Connections.
DocuShare Integration Connection Fields
-
Connection Name: This is a unique name given to the connector instance upon creation.
-
Description: A description of the connector to help identify it better.
-
Connector Class: The class of this connector that implements the connector interface. The connector class helps identify the current connector.
-
Authentication Connection: The Authentication connection that you want to use.
Job Configuration
DocuShare Object Selection Job Configuration
-
DocuShare Query: (Optional) - Text that will be used as part of a search against the docuShare repo. When used, folder crawling does not take place.
-
Root Folders: A comma delimited list of directories to crawl.
-
Workspaces: A comma delimited list of workspaces to crawl.
-
Crawl User Personal Collections: When checked, 3Sixty will crawl all directories in user personal collections.
-
Process Collections: A collections (folders) to the document queue for processing.
-
Include Message Attachments
-
The rate in MBs to read DocuShare binaries: (0 to read the file all at once)
Content Service Connector

Retrieving ACLs follows the standard format. You will need to send 3Sixty the Document id for the target document or collection. The document id is the .getHandle().toLongString(). This means the id includes a reference to the host location: Document-54:ec2-34-228-158-26.compute-1.amazonaws.com
Example:
CURL
curl -X GET -u admin:admin 'http://localhost:8081/simflofy-admin/repo/ds/acls?id=Document-54:ec2-34-228-158-26.compute-1.amazonaws.com'
Output
{
"results": [
"test[User-11:ec2-34-228-158-26.compute-1.amazonaws.com]:manage,write_object,read_object,read_linked,write_linked,read_history,search",
"admin[User-2:ec2-34-228-158-26.compute-1.amazonaws.com]:manage,write_object,read_object,read_linked,write_linked,read_history,search",
"Content Administrators[Group-2:ec2-34-228-158-26.compute-1.amazonaws.com]:manage,write_object,read_object,read_linked,write_linked,read_history,search"
],
"success": "true"
}
The returned result is in the formation of "userName[user- handle]:permission1,permission2...". The user handle is the user's ID for DocuShare and can be used to update permissions.

When updating permissions of an object you will need to send an encoded JSON string as the acls argument that includes the handle (id) of the authority you want to change.
Permission Options
-
all
-
read_all
-
write_all
-
manage
-
write_object
-
write_linked
-
read_object
-
read_linked
-
read_history
-
search
Example:
Update a single user's permissions
curl -X GET -u admin:admin 'http://localhost:8081/simflofy-admin/repo/ds/acls?id=Document-54:ec2-34-228-158-26.compute-1.amazonaws.com'
Update a group's permissions
curl -X GET -u admin:admin 'http://localhost:8081/simflofy-admin/repo/ds/acls?id=Document-54:ec2-34-228-158-26.compute-1.amazonaws.com'
CURL
curl -X GET -u admin:admin 'http://localhost:8081/simflofy-admin/repo/ds/acls?id=Document-54:ec2-34-228-158-26.compute-1.amazonaws.com'
Output:
{
"results": [
"test[User-11:ec2-34-228-158-26.compute-1.amazonaws.com]:manage,write_object,read_object,read_linked,write_linked,read_history,search",
"admin[User-2:ec2-34-228-158-26.compute-1.amazonaws.com]:manage,write_object,read_object,read_linked,write_linked,read_history,search",
"Content Administrators[Group-2:ec2-34-228-158-26.compute-1.amazonaws.com]:manage,write_object,read_object,read_linked,write_linked,read_history,search"
],
"success": "true"
}
Error Output:
{
"message": "Exception while setting access controls for id Document-54:ec2-34-228-158-26.compute-1.amazonaws.com and connector with id ds",
"error": "In three-bit permission mode, all of the read bits must be the same value as each other and all of the write bits must be the same value as each other",
"success": false
}
In the above error, you are attempting to use an illegal combination of permissions.
{
"message": "Exception while setting access controls for id Document-54:ec2-34-228-158-26.compute-1.amazonaws.com and connector with id ds",
"error": "Could not find connection with id ds",
"success": false
}
In the above error, we used a connector ID that does not exist in 3Sixty.

When deleting permissions of an object you will need to send an encoded comma separated string as the aclsid argument. This will be a list of principal handles to be deleted.
Example: Delete a single principal Group-6:msedgewin10.local
CURL
curl -u admin:admin -X POST 'http://localhost:8081/simflofy-admin/repo/ds/acls?id=Document-54:ec2-34-228-158-26.compute-1.amazonaws.com&aclId=Group-6%3Amsedgewin10.local
Output
{
"success": true,
"results": "Group-6:msedgewin10.local"
}
Error (invalid principal)
{
"message": "Error while deleting access controls [id:Document-141] [permissions:1Group-6:msedgewin10.local] for connection docushare-test Error: modifyAclEntries; nested exception is: \n\tcom.xerox.docushare.db.DatabaseException: This class does not exist: 1Group",
"error": "modifyAclEntries; nested exception is: \n\tcom.xerox.docushare.db.DatabaseException: This class does not exist: 1Group",
"success": "false"
}

The methods currently supported for this connector are:
-
checkIn
-
checkOut
-
createFolder
-
deleteACL
-
deleteFolder
-
deleteObjectByID
-
deleteVersion
-
findTypeDefinition
-
getACLs
-
getFileContent
-
getObjectProperties
-
getTypes
-
getVersionContent
-
getVersionProperties
-
listFolderItems
-
listVersions
-
revertVersion
-
setACLs
-
updateProperties
API Keys
DocuShare Repository Connector: Read=true: Write=false: MIP=false
Repo (Read) Specs
Key |
Description |
Data Type |
---|---|---|
docushareQuery | Docushare Query | String |
rootFolders |
Root Folders, Comma Delimited |
String |
workSpaces |
Workspaces, Comma Delimited |
String |
handles |
Object Handles, Comma Delimited |
String |
includeUserHomes |
Crawl User Personal Collections? |
Boolean |
processCollections |
Process Collections? |
Boolean |
includeMailMessageDocs |
Include Message Attachments? |
Boolean |
docushareChunkRate |
The rate in MBs to read DocuShare binaries (0 to read the file all at once) |
Long |
Need help integrating DocuShare? Learn more here.