The Confluence Connector performs full and incremental scans over a Confluence directory and will extract security, metadata, and content from each object scanned. The connector allows you to select whether you wish to index folders in the results, and if you wish to scan sub-folder content. Each scanned object will be tagged with one of three possible actions--add, update, or delete--and can be routed to any Aspire pipeline as desired.

The connector, once started, can be stopped, paused or resumed via the Scheduler Component. Typically the start job will contain all information required by the job to perform the scan. When pausing or stopping, the connector will wait until all the jobs it published have completed before updating the statistics and status of the connector.


Atlassian Confluence Application Bundle (Aspire 2)
AppBundle Name Confluence Connector
Maven Coordinates com.searchtechnologies.aspire:app-confluence-connector
Versions 2.2.2
Type Flags scheduled, group-expansion
Inputs AspireObject from a content source submitter holding all the information required for a crawl.
Outputs An AspireObject containing the URL, content, ACLs and Metadata processed for each file.

Configuration

This section lists all configuration parameters available to install the Atlassian Confluence Application Bundle and to execute crawls using the connector.

General Application Configuration

PropertyTypeDefaultDescription
snapshotDirstring${aspire.home}/snapshotsThe directory for snapshot files to be stored.
disableTextExtractbooleanfalseBy default, connectors use Apache Tika to extract text from downloaded documents. If you wish to apply special text processing to the downloaded document in the workflow, you should disable text extraction. The downloaded document is then available as a content stream.
workflowReloadPeriodint15mThe period after which to reload the business rules. Defaults to ms, but can be suffixed with ms, s, m, h or d to indicate the required units.
workflowErrorTolerantbooleanfalseWhen set, exceptions in workflow rules will only effect the execution of the rule in which the exception occurs. Subsequent rules will be executed and the job will complete the workflow sucessfully. If not set, exceptions in workflow rules will be re-thrown and the job will be moved to the error workflow.
debugBooleanfalseControls whether debugging is enabled for the application. Debug messages will be written to the log files.



Confluence Specific Configuration

ElementTypeDefaultDescription
confluenceVersionstringV3.5Indicates the Confluence version that will be crawled.
cacheTimeoutstring180000Time that the cache memory will be alive.
numOfSnapshotBackupsstring10Number of snapshots that will be stored as backups.
groupPrefixSeparatorstring|Prefix used to separate users and groups on ACL's file.
confluencePublicAclstringconfluence-public-aclACL that will be used to indicate that a page have public access.
defaultConfluenceUrlstring
Confluence instance to crawl,
defaultDomainstring
The domain to connect to Confluence.
defaultUsernamestring
The username to connect to Confluence.
defaultPasswordstring
The password to connect to Confluence.
ssoAuthenticationbooleanfalseCheck this if your confluence authentication is managed by a Single Sign On engine and it uses a cookie based authentication mechanism.
ssoServerstring
The full URL where we are going to do the request to authenticate.
ssoCookiestring
The name of the authentication cookie the system should look for.
useGEbooleanfalseCheck this if you want to use group expansion.
useLDAPCachebooleanfalseCheck this if you want to use an external server to perform group expansion (Group Expansion Manager is required).
externalGroupServerPathselect
Indicates the path of the component that gets the external groups from LDAP.


Configuration Example

To install the application bundle, add the configuration, as follows, to the <autoStart> section of the Aspire settings.xml.

<application config="com.searchtechnologies.aspire:app-confluence-connector">
  <properties>
    <property name="confluenceVersion">v5</property>
    <property name="generalConfiguration">false</property>
    <property name="cacheTimeout">180000</property>
    <property name="numOfSnapshotBackups">10</property>
    <property name="groupPrefixSeparator">|</property>
    <property name="confluencePublicAcl">confluence-public-acl</property>
    <property name="defaultConfluenceUrl"/>
    <property name="defaultDomain"/>
    <property name="defaultUsername"/>
    <property name="defaultPassword"/>
    <property name="ssoAuthentication">false</property>
    <property name="snapshotDir">${dist.data.dir}/${app.name}/snapshots</property>
    <property name="disableTextExtract">false</property>
    <property name="workflowReloadPeriod">15s</property>
    <property name="workflowErrorTolerant">false</property>
    <property name="debug">false</property>
    <property name="useGE">false</property>
    <property name="useLDAPCache">false</property>
    <property name="externalGroupServerPath"/>
  </properties>
</application>


Source Configuration

Scanner Control Configuration

The following table describes the list of attributes that the AspireObject of the incoming scanner job requires to correctly execute and control the flow of a scan process.

ElementTypeOptionsDescription
@actionstringstart, stop, pause, resume, abortControl command to tell the scanner which operation to perform. Use start option to launch a new crawl.
@actionPropertiesstringfull, incrementalWhen a start @action is received, it will tell the scanner to either run a full or an incremental crawl.
@normalizedCSNamestring
Unique identifier name for the content source that will be crawled.
displayNamestring
Display or friendly name for the content source that will be crawled.

Header Example

  <doc action="start" actionProperties="full" actionType="manual" crawlId="0" dbId="0" jobNumber="0" normalizedCSName="FeedOne_Connector"
   scheduleId="0" scheduler="##AspireSystemScheduler##" sourceName="ContentSourceName">
    ...
    <displayName>testSource</displayName>
    ...
  </doc>


All configuration properties described in this section are relative to /doc/connectorSource of the AspireObject of the incoming Job.

ElementTypeDefaultDescription
urlstringnoneThe url to the Confluence server.
domainstringnoneThe domain to the Confluence server.
usernamestringnoneThe name of the user that is going to be used for the crawl
passwordstringnoneThe password of the user.
pluginEnabledboolean
Indicates if the plugin is installed in the Confluence server.
includeAttachmentsboolean
Indicates if attachments should be included in the crawl.
includeCommentsboolean
Indicates if comments should be included in the crawl.
anonymousAccessAllowedboolean
Indicates if anonymous access allowed on this instance of Confluence.
indexContainersboolean
true if folders (as well as files) should be indexed.
scanRecursivelyboolean
Indicates whether the child containers should be scanned or not.
fileNamePatterns/include/@patternregexnoneOptional. A regular expression pattern to evaluate file urls against; if the file name matches the pattern, the file is included by the scanner. Multiple include nodes can be added.
fileNamePatterns/exclude/@patternregexnoneOptional. A regular expression pattern to evaluate file urls against; if the file name matches the pattern, the file is excluded by the scanner. Multiple exclude nodes can be added.


Scanner Configuration Example

<doc action="start" actionProperties="full" normalizedCSName="confluence">
  <connectorSource>
    <url>http://myConfluenceServer:8090/</url>
    <domain/>
    <username>admin</username>
    <password>encrypted:562E81591F85B858E5A5D3876F9C9FDB</password>
    <pluginEnabled>false</pluginEnabled>
    <includeAttachments>true</includeAttachments>
    <includeComments>true</includeComments>
    <anonymousAccessAllowed>false</anonymousAccessAllowed>
    <indexContainers>true</indexContainers>
    <scanRecursively>true</scanRecursively>
    <fileNamePatterns>
      <include pattern=".*place.*"/>
      <exclude pattern=".*people.*"/>
    </fileNamePatterns>
  </connectorSource>
  <displayName>confluence</displayName>
</doc>

Note: To launch a crawl, the job should be sent (processed/enqueued) to the "/ConfluenceConnector/Main" pipeline.


Output

  
<doc>
  <url>http://myConfluenceServer:8090/display/ds/Welcome+to+Confluence</url>
  <displayUrl>http://myConfluenceServer:8090/display/ds/Welcome+to+Confluence</displayUrl>
  <snapshotUrl>002 http://myConfluenceServer:8090/display/ds/Welcome+to+Confluence</snapshotUrl>
  <docType>container</docType>
  <repItemType>aspire/page</repItemType>
  <sourceName>confluence</sourceName>
  <sourceType>confluence</sourceType>
  <fetchUrl>http://myConfluenceServer:8090/display/ds/Welcome+to+Confluence</fetchUrl>
  <id>98311</id>
  <spaceKey>ds</spaceKey>
  <parentId>0</parentId>
  <version>1</version>
  <title>Welcome to Confluence</title>
  <connectorSpecific type="confluence"/>
  <acls>
    <parentAcl access="allow" domain="77E1C5F668C465B2ADC241BF95884C0D" entity="group" fullname="77E1C5F668C465B2ADC241BF95884C0D\77E1C5F668C465B2ADC241BF95884C0D|confluence-prefix|confluence-users" name="77E1C5F668C465B2ADC241BF95884C0D|confluence-prefix|confluence-users" scope="global"/>
    <parentAcl access="allow" domain="77E1C5F668C465B2ADC241BF95884C0D" entity="group" fullname="77E1C5F668C465B2ADC241BF95884C0D\77E1C5F668C465B2ADC241BF95884C0D|confluence-prefix|confluence-administrators" name="77E1C5F668C465B2ADC241BF95884C0D|confluence-prefix|confluence-administrators" scope="global"/>
  </acls>
  <connectorSource>
    <url>http://myConfluenceServer:8090/</url>
    <domain/>
    <username>admin</username>
    <password>encrypted:562E81591F85B858E5A5D3876F9C9FDB</password>
    <pluginEnabled>false</pluginEnabled>
    <includeAttachments>true</includeAttachments>
    <includeComments>true</includeComments>
    <anonymousAccessAllowed>false</anonymousAccessAllowed>
    <indexContainers>true</indexContainers>
    <scanRecursively>true</scanRecursively>
    <fileNamePatterns/>
    <displayName>confluence</displayName>
  </connectorSource>
  <action>add</action>
  <hierarchy>
    <item id="523D98F4DB3124D58501A819A72BDBDE" level="2" name="Welcome+to+Confluence" type="aspire/page" url="http://myConfluenceServer:8090/display/ds/Welcome+to+Confluence">
      <ancestors>
        <ancestor id="C303FAC5F06BF5C8A9885CC249C08656" level="1" name="displayds" parent="true" type="aspire/space" url="http://myConfluenceServer:8090/display/ds"/>
        <ancestor id="7059F8EF9439865D97808D4415B22D6E" level="0" name="confluence" type="aspire/root" url="http://myConfluenceServer:8090/"/>
      </ancestors>
    </item>
  </hierarchy>
  <displayUrl>http://myConfluenceServer:8090/display/ds/Welcome+to+Confluence</displayUrl>
  <author/>
  <created>Wed Jul 24 15:13:32 CST 2013</created>
  <contentStatus>current</contentStatus>
  <current>true</current>
  <modifier/>
  <modified>Tue Mar 25 09:54:39 CST 2014</modified>
  <homePage>true</homePage>
  <url>http://myConfluenceServer:8090/display/ds/Welcome+to+Confluence</url>
  <originalContent><p style="text-align: center;">&nbsp;</p><p><span style="color: rgb(153,153,153);"><br /></span></p><h2><ac:image><ri:attachment ri:filename="welcome.png" /></ac:image><br />&nbsp; <span style="color: rgb(128,128,128);">With Confluence it is easy to create, edit and share content with your team. Choose a topic below to start learning how.</span></h2><h2><span style="color: rgb(0,0,128);"><br /></span></h2><ol><li><span style="color: rgb(0,0,128);"><ac:link><ri:page ri:content-title="What is Confluence? (step 1 of 9)" /><ac:link-body>What is Confluence?<br /><br /></ac:link-body></ac:link></span></li><li><span style="color: rgb(0,0,128);"><ac:link><ri:page ri:content-title="A quick look at the editor (step 2 of 9)" /><ac:plain-text-link-body><![CDATA[A quick look at the editor]]></ac:plain-text-link-body></ac:link><br />&nbsp;</span></li><li><span style="color: rgb(0,0,128);"><ac:link><ri:page ri:content-title="Let's edit this page (step 3 of 9)" /><ac:plain-text-link-body><![CDATA[Let's edit this page]]></ac:plain-text-link-body></ac:link><br /><br /></span></li><li><span style="color: rgb(0,0,128);"><ac:link><ri:page ri:content-title="Prettify the page with an image (step 4 of 9)" /><ac:link-body>Prettify the page with an image<br /><br /></ac:link-body></ac:link></span></li><li><span style="color: rgb(0,0,128);"><ac:link><ri:page ri:content-title="Get serious with a table (step 5 of 9)" /><ac:link-body>Get serious with a table<br /></ac:link-body></ac:link></span><span style="color: rgb(0,0,128);">&nbsp;</span></li><li><span style="color: rgb(0,0,128);"><ac:link><ri:page ri:content-title="Lay out your page (step 6 of 9)" /><ac:plain-text-link-body><![CDATA[Lay out your page]]></ac:plain-text-link-body></ac:link>&nbsp;<br /><br /></span></li><li><ac:link><ri:page ri:content-title="Learn the wonders of autoconvert (step 7 of 9)" /><ac:plain-text-link-body><![CDATA[Learn the wonders of autoconvert]]></ac:plain-text-link-body></ac:link>&nbsp;<br /><br /></li><li><ac:link><ri:page ri:content-title="Tell people what you think in a comment (step 8 of 9)" /><ac:plain-text-link-body><![CDATA[Tell people what you think in a comment]]></ac:plain-text-link-body></ac:link>&nbsp;<br /><br /></li><li><ac:link><ri:page ri:content-title="Share your page with a team member (step 9 of 9)" /><ac:plain-text-link-body><![CDATA[Share your page with a team member]]></ac:plain-text-link-body></ac:link></li></ol><p><span style="color: rgb(128,128,128);"><br /></span></p><p><span style="color: rgb(128,128,128);"><br /></span></p><p><span style="color: rgb(128,128,128);"><br /></span></p><p><span style="color: rgb(128,128,128);"><br /></span></p><p><span style="color: rgb(128,128,128);"><br /></span></p><p style="text-align: right;">&nbsp; &nbsp; &nbsp;&nbsp;</p></originalContent>
  <content> &nbsp;           &nbsp;  With Confluence it is easy to create, edit and share content with your team. Choose a topic below to start learning how.           What is Confluence? (step 1 of 9) What is Confluence?         A quick look at the editor (step 2 of 9) <![CDATA[A quick look at the editor]]>   &nbsp;     Let's edit this page (step 3 of 9) <![CDATA[Let's edit this page]]>         Prettify the page with an image (step 4 of 9) Prettify the page with an image         Get serious with a table (step 5 of 9) Get serious with a table     &nbsp;     Lay out your page (step 6 of 9) <![CDATA[Lay out your page]]>  &nbsp;      Learn the wonders of autoconvert (step 7 of 9) <![CDATA[Learn the wonders of autoconvert]]>  &nbsp;     Tell people what you think in a comment (step 8 of 9) <![CDATA[Tell people what you think in a comment]]>  &nbsp;     Share your page with a team member (step 9 of 9) <![CDATA[Share your page with a team member]]>                              &nbsp; &nbsp; &nbsp;&nbsp; </content>
</doc>


  • No labels