TFS Work-Item Connector

TFS Work-Item Connector

Download the latest version of the TFS Work-Item connector here.

A Krugle SCMI Connector is software that Krugle uses to connect to your content repositories.
Once install and running, the Krugle SCMI connector will (under the direction of Krugle):
- access new or updated records and information from your repository
- manage a cache of new or updated records and information
- keep track of when the record and information cache was last updated
- handle requests for new or updated information from Krugle

NOTE: This connector is for TFS Work Items. A separate "onboard" Data Repository connector is
available for TFS code files.




* Windows, Linux, Unix or OS X with a minimum of 10GB of free hard disk space
* Java 1.5 or greater
* 100 megabytes RAM - minimimum
* 512 megabytes RAM - recommended

Note: If an 'out of memory' condition occurs when running the SCMI service, the
available memory for java memory (-Xmx) should be increased in scmi-env.bat (windows) and
run.sh (*nix).

Download Connector




1. Prepare the Windows host Machine

* Create a new user to run the TFS SCMI. "tfsscmi" is a good choice.

* Verify you have java 1.5 or greater.
2. Decompress the contents of the TFS SCMI distribution. The path "C:\SCMI\tfs-scmi\"
is suggested.

3. If necessary, modify settings in <installed location>\tfs.properties

* The properties file contains settings for the communication port, file handling and file
storage options. Review and edit the tfs.properties file if default settings are not
appropriate for your situation.

* IMPORTANT: If editing, be sure to use "\\" when a "\" character is needed, because java
will assume these strings use character escapes. It is likely that this file will have
Unix newlines, so use an editor more advanced than notepad. Wordpad is sufficient.

* By default, state directory files required by the SCMI (including checked out working
copies) will be placed in the stateDir subdirectory of the SCMI install path. This location
can be changed by modifying the scmi.stateDir parameter in the properties file:

NOTE: You might want to change this directory location if you're running out of disk space
where the SCMI is installed, or if the stateDir directory structure is creating filepaths
with too many characters for Windows to support.

4. Edit the settings in <installed location>\run.bat

* Set JAVA to a command which will invoke java 1.5 or greater. "java" will probably work, and you can
test this by running "java -version" from the command line.
* Set SCMI_HOME to the <installed location> where you unzipped the scripts. If you followed the
suggestion from (2) above, this would be "C:\\SCMI\\tfs-scmi\\"

5. Execute run.bat as the appropriate user.

6. Validate that the SCMI is running correctly by pointing your browser to the following URL:
http://<hostname of SCMI>:<port of SCMI>/status
The port usually is 8767 (or what you set in tfs.properties).

If this doesn't return a status page the SCMI didn't start up properly. Check the activity log for
details in this case: logs/scmi-activity.log

7. Continue to USAGE instructions below.




1. Prepare the *nix server where the client will be installed

* Verify you have java 1.5 or greater.
* Create a user (e.g. "tfsscmi") that will be used to run the client. Not necessary but suggested.
2. Copy and unpack the contents of the TFS SCMI distribution on your server.

Ideally these files should go into /home/<user>, where <user> is the user you created in step 1 above.

For example, if the SCMI archive name is tfs-scmi-1.0.0-release.zip
and you wanted to have the resulting files located at /home/tfsscmi/, you would execute:

unzip tfs-scmi-1.0.0-release.zip
mv tfs-scmi-1.0.0 /home/tfsscmi/

3. Change settings in the tfs.properties file according to your needs.

* By default, all state files (including checked out working copies) will be placed in the
stateDir subdirectory of the SCMI install path. This can be changed by setting:
You might want to change this if you're running out of space on the mount where the
SCMI is installed.

4. Change settings in the <installed location>/init.d/tfsscmi.sh file to match your server setup.

* Note that you can start right away by executing bin/run.sh from the scmi folder, but to kill that process
you will need to kill its PID by hand. It is suggested you follow the steps below to properly
install the SCMI application.
* Uncomment and set the USER= parameter at the top of /init.d/tfsscmi.sh. For the example above, the value
for USER should be set to tfsscmi.
* Edit the SCMIDIR= parameter, also at the top of the file. This must match the location where
you unpacked the files, for example /home/tfsscmi/tfs-scmi-1.0.0
* Make sure MYNAME is unique for every scmi script you may have installed. This will be used
by tfsscmi.sh to store the pid of the running process.

5. Set the owner for all the installed files to be the user specified above. For example

chown -R tfsscmi /home/tfsscmi/tfs-scmi-1.0.0

6. Create a symlink from /etc/init.d/tfsscmi to <installed location>/init.d/tfsscmi.sh

cd /etc/init.d
ln -s /home/tfsscmi/tfs-scmi-1.0.0/init.d/tfsscmi.sh tfsscmi

Then set this script to be started at the correct runlevels. The exact method for this will depend on your
flavor of *nix. If your system supports chkconfig (try 'which chkconfig' to test this):

chkconfig --levels 35 tfsscmi on

If you have an Ubuntu system you will need to use update-rc.d:

update-rc.d tfsscmi defaults

If you do not have chkconfig of update-rc.d commands available, you will need to determine the appropriate
substitute for your OS in order to enable automatic startup.

7. Start the TFS SCMI by running the service after installation, for example

service tfsscmi start

If you experience problems with 'service':

a) Run as root, and if you su to root, make sure you run 'su -' so that paths are setup correctly.
b) If you cannot get the 'service' command to work as intended, you can directly execute 'run.sh'
but this must be done as the SCMI user, and not as root. The process will have to be killed with
the 'kill' command.

Then you should watch the log file located at <installed location>/logs/scmi-activity.log to
ensure the service has started up properly.

8. Validate that the SCMI is running correctly by pointing your browser to the following URL:
http://<hostname of SCMI>:<port of SCMI>/status
The port usually is 8767 (or what you set in tfs.properties).

If this doesn't return a status page the SCMI didn't start up properly. Check the activity log for
details in this case: logs/scmi-activity.log




1. Once the SCMI script is setup correctly, navigate to your Krugle Enterprise Search
Appliance (KE) admin page. Typically this is http://<hostname>:8080/projects/project_listing.html
2. Create a new SCM repository of the SCMI type.

* The hostname should be set the hostname or IP address of the machine hosting this SCMI.
* The scm name can be any descriptive name that you choose, for example "TFS Items scmi"
* The username and password are blank.
* The port should be set to 8767 (or what you set in tfs.properties), and the protocol set
to HTTP.
* The path should be set to /repository
* The project source box should be unchecked for most cases. It should only be set if you are sure
this SCMI is source of project definitions.

3. Create a new project or edit an existing one.

* Add a SCM location for the SCM repository you just created in step 2.

* The location should be set to the URL to a TFS project collection: The URL to a TFS project collection, including virtual directory and
collection name (like "http://server:8080/tfs/DefaultCollection").

* Fill in the parameters as needed. These are URL-encoded, of the form <key1>=<value1>&<key2>=<value2>
The parameters as follows:username=<UserName>&domain=<domain>&password=<password>&project=<project>
If the HTTP prox is used, you need also to give their values in the parameters: &proxyurl=<httpProxyURL>

* Common parameters are:
username=xxx: the username that can access the tfs work item
domain=xxx: domain which the username belong to
password=xxx: the username's password
proxyurl=xxx: proxy url when needed
proxyusername=xxx: proxy username
proxypassword=xxx: proxy password
project=xxx: A team project name (without the leading "$/") where files, work items, and builds can be created and modified.

For more information on setting up Krugle Enterprise with these SCMI clients, please see
the Krugle Enterprise Administration Guide and the SCMI SDK documentation at




Plugins allow functionality of the SCMI application to be added or modified. A plugin is installed
if it is placed in the /plugins directory. Every plugin has a properties file in the /plugins directory
as well, and this properties file controls various configuration values as well as whether or not the
plugin is enabled.

All SCMIs which crawl source code should include the file-filter plugin. It will be enabled by default
but it will only filter out known binary file types. To modify the list of files and directories filtered
out, edit /plugins/filter.properties




If you wish you may change log settings by editing the log4j.properties file. The first line currently looks like:

log4j.rootLogger = info, ActivityRFA, ErrorRFA

You can increase the amount of information being logged by changing "info" to "debug". Note that this
change must be made before the SCMI client is started.

Request Form - Free Download of Krugle Basic

Fill out the form to download Krugle Basic V5.

Fields marked with * are required.