Configuration
This section lists all configuration parameters available to install the Jive Application Bundle and to execute crawls using the connector.
Property | Type | Default | Description |
---|---|---|---|
snapshotDir | string | ${aspire.home}/snapshots | The directory for snapshot files to be stored. |
disableTextExtract | boolean | false | By 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. |
workflowReloadPeriod | int | 15m | The 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. |
workflowErrorTolerant | boolean | false | When 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. |
useGE | boolean | false | true if group expansion is going to be used. |
geSchedule | string | 0 0 0 * * ? | Indicates how often the group expasion is going to fetch all the security groups. |
url | string | none | The url to the Jive Community. |
username | string | none | The user used to fetch the security groups. |
password | string | none | The password for the user |
debug | Boolean | false | Controls whether debugging is enabled for the application. Debug messages will be written to the log files. |
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-jive-connector"> <properties> <property name="generalConfiguration">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="useGE">true</property> <property name="geSchedule">0 0 12 ? * *</property> <property name="url">http://searchtechnologies.jive.com</property> <property name="username">Admin</property> <property name="password">encrypted:63AA72A7708C8999DEE56A41894EBEEB</property> <property name="debug">true</property> </properties> </application>
Note: Any optional properties can be removed from the configuration to use the default value described on the table above.
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.
Element | Type | Options | Description |
---|---|---|---|
@action | string | start, stop, pause, resume, abort | Control command to tell the scanner which operation to perform. Use start option to launch a new crawl. |
@actionProperties | string | full, incremental | When a start @action is received, it will tell the scanner to either run a full or an incremental crawl. |
@normalizedCSName | string | Unique identifier name for the content source that will be crawled. | |
displayName | string | 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.
Element | Type | Default | Description |
---|---|---|---|
url | string | none | Jive community URL. |
username | string | none | The name of the user that is going to be use for the crawl |
password | string | none | The password of the user. |
useSecurity | boolean | false | true if want to fetch the document level security. |
useSecurityPlugin | boolean | false | true if the fetch the security groups ACLs. |
pageSize | integer | 100 | Number of elements that are going to be fetched per call |
timeOut | integer | 5 | Time in seconds before the connection gives a timeout |
maxRetries | integer | 3 | Number of attempts before the connection gives error |
mapsDBDir | string | ${dist.data.dir}/${app.name}/mapsDB | Directory where the mapDBs for the ACLs and the Hierarchy will be placed. |
indexSpecific | boolean | false | true if you want to specify which endpoints to crawl. |
endpionts/endpoint@value | boolean | true | true if you want to crawl this endpoint (people, places, contents, announcements) |
activityIncremental | boolean | false | true if you want to use the Activity incremental. |
incrementalCount | integer | 5 | How many Activity crawl must be perform in order to do a normal incremental. |
timestampDir | string | ${dist.data.dir}/${app.name}/timestamp | Directory where timestamp will be placed. |
connectionProperties | boolean | false | true if you want to use a specific timestamp for the incremental crawl with Activity API. |
customMetadata | boolean | false | true if you want to modified some metadata options. |
fetchModifiedBy | boolean | true | true if you want to fetch the modifiedBy for the Documents and Files items. |
fetchOwner | boolean | true | true if you want to fetch the Owner for Tasks items. |
fetchReplies | boolean | true | true if you want to fetch the replies of the discussions. |
fetchComments | boolean | true | true if you want to fetch the comments, of the content items. |
fileNamePatterns/include/@pattern | regex | none | Optional. 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/@pattern | regex | none | Optional. 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="testFile"> <connectorSource> <url>https://searchtechnologies.jive-on.com</url> <username>Admin</username> <password>encrypted:8F51820C8DA15CBE0FC9A07E99674290</password> <useSecurity>true</useSecurity> <useSecurityPlugin>true</useSecurityPlugin> <pageSize>100</pageSize> <timeOut>5</timeOut> <maxRetries>3</maxRetries> <mapsDBDir>${dist.data.dir}/${app.name}/mapsDB</mapsDBDir> <indexSpecific>true</indexSpecific> <endpionts> <endpoint value="people">true</endpoint> <endpoint value="places">true</endpoint> <endpoint value="contents">true</endpoint> <endpoint value="announcements">true</endpoint> </endpionts> <activityIncremental>true</activityIncremental> <incrementalCount>5</incrementalCount> <timestampDir>${dist.data.dir}/${app.name}/timestamp</timestampDir> <connectionProperties>true</connectionProperties> <timestamp>2014-01-01T00:00:00.000-0000</timestamp> <customMetadata>true</customMetadata> <fetchModifiedBy>true</fetchModifiedBy> <fetchOwner>true</fetchOwner> <fetchReplies>true</fetchReplies> <fetchComments>true</fetchComments> <fileNamePatterns> <include pattern=".*Public.*"/> <exclude pattern=".*Secret.*"/> </fileNamePatterns> </connectorSource> <displayName>testFile</displayName> </doc>
Note: To launch a crawl, the job should be sent (processed/enqueued) to the "/JiveConnector/Main" pipeline.
Output
<doc> <sourceType>jive</sourceType> <fetchUrl>http://searchtechnologies.jive.com/api/core/v3/places/1000</fetchUrl> <docType>container</docType> <lastModified>2013-04-22T13:56:11Z</lastModified> <dataSize>0</dataSize> <url>http://searchtechnologies.jive.com/api/core/v3/places/1000</url> <crawlId>43</crawlId> <id>1000</id> <displayUrl>http://searchtechnologies.jive.com/community/getting-started</displayUrl> <connectorSpecific type="jive"> <field name="contentsUrl">http://searchtechnologies.jive.com/api/core/v3/contents?filter=place(http%3A%2F%2Fjive-search.com%3A8080%2Fapi%2Fcore%2Fv3%2Fplaces%2F1000)</field> <field name="contentsAllowed">GET</field> <field name="announcementsUrl">http://searchtechnologies.jive.com/api/core/v3/places/1000/announcements</field> <field name="announcementsAllowed">GET, POST</field> <field name="categoriesUrl">http://searchtechnologies.jive.com/api/core/v3/places/1000/categories</field> <field name="categoriesAllowed">GET, POST</field> <field name="htmlUrl">http://searchtechnologies.jive.com/community/getting-started</field> <field name="htmlAllowed">GET</field> <field name="selfUrl">http://searchtechnologies.jive.com/api/core/v3/places/1000</field> <field name="selfAllowed">DELETE, GET, PUT</field> <field name="placesUrl">http://searchtechnologies.jive.com/api/core/v3/places/1000/places</field> <field name="placesAllowed">GET</field> <field name="avatarUrl">http://searchtechnologies.jive.com/api/core/v3/places/1000/avatar</field> <field name="avatarAllowed">DELETE, GET, POST</field> <field name="followingInUrl">http://searchtechnologies.jive.com/api/core/v3/places/1000/followingIn</field> <field name="followingInAllowed">GET</field> <field name="activityUrl">http://searchtechnologies.jive.com/api/core/v3/places/1000/activities</field> <field name="activityAllowed">GET</field> <field name="staticsUrl">http://searchtechnologies.jive.com/api/core/v3/places/1000/statics</field> <field name="staticsAllowed">GET, POST</field> <field name="childCount">0</field> <field name="status">Active</field> <field name="locale">en_US</field> <field name="parent">http://searchtechnologies.jive.com/api/core/v3/places/1002</field> <field name="contentTypes">discussions, documents, files, polls</field> <field name="id">2001</field> <field name="visibleToExternalContributors">false</field> <field name="description">New to Jive SBS? Start here to learn how to get the most out of it.</field> <field name="name">Getting Started</field> <field name="followerCount">0</field> <field name="displayName">getting-started</field> <field name="published">2013-04-08T15:15:06Z</field> <field name="viewCount">0</field> </connectorSpecific> <repItemType>aspire/space</repItemType> <sourceName>Jive Connecotr with Plugin</sourceName> <snapshotUrl>002 http://searchtechnologies.jive.com/api/core/v3/places/1000</snapshotUrl> <action>add</action> <acls> <acl name="All Registered Users" sidType="4" scope="global" entity="group" sid="-2" access="allow"/> <acl name="All Guest Users" sidType="4" scope="global" entity="group" sid="-3" access="allow"/> </acls> <hierarchy> <item name="Getting Started" type="space" url="http://searchtechnologies.jive.com/api/core/v3/places/1000" id="1000" level="2"> <ancestors> <ancestor name="Jive" parent="true" type="space" url="http://searchtechnologies.jive.com/api/core/v3/places/1002" id="1002" level="1"/> </ancestors> </item> </hierarchy> <connectorSource> <url>https://searchtechnologies.jive-on.com</url> <username>Admin</username> <password>encrypted:8F51820C8DA15CBE0FC9A07E99674290</password> <useSecurity>true</useSecurity> <useSecurityPlugin>true</useSecurityPlugin> <pageSize>100</pageSize> <timeOut>5</timeOut> <maxRetries>3</maxRetries> <mapsDBDir>${dist.data.dir}/${app.name}/mapsDB</mapsDBDir> <indexSpecific>true</indexSpecific> <endpionts> <endpoint value="people">true</endpoint> <endpoint value="places">true</endpoint> <endpoint value="contents">true</endpoint> <endpoint value="announcements">true</endpoint> </endpionts> <activityIncremental>true</activityIncremental> <incrementalCount>5</incrementalCount> <timestampDir>${dist.data.dir}/${app.name}/timestamp</timestampDir> <connectionProperties>true</connectionProperties> <timestamp>2014-01-01T00:00:00.000-0000</timestamp> <customMetadata>true</customMetadata> <fetchModifiedBy>true</fetchModifiedBy> <fetchOwner>true</fetchOwner> <fetchReplies>true</fetchReplies> <fetchComments>true</fetchComments> <fileNamePatterns> <include pattern=".*Public.*"/> <exclude pattern=".*Secret.*"/> </fileNamePatterns> </connectorSource> <displayName>testFile</displayName> </doc>