Custom Columns and Values

In addition to the myriad of built in data fields for various object types, you can define up to 10 custom fields each for Computers, Devices, and Purchases. You can also create presets for field values, and add custom Lifecycle stages and Device Types. Note that versions prior to 7.8 only had custom columns for Computers which could only be defined in KeyConfigure with a much simpler interface.

Creating and Defining

In order to use custom columns, you must first define labels for them. This can be done in several ways:

  • In the Web UI click on Settings - Columns
  • In KeyConfigure click on Config - Define Columns
  • In KeyConfigure in a Computer, Device, or Purchase Details record, click on Customize in the Custom panel
  • In KeyConfigure in the Computer, Devices, or Purchases windows, right click on the column headers and choose Define Columns
  • Using the Web UI

    As the Web UI is often the more popular and friendlier interface we will start with that.

         Define Columns in the Web UI

    In the top section, you can create preset options for various fields. Clicking the gears for any of the columns brings up the modal to customize them. This is a simple list of one option per line. You can also choose to require one of the presets, or allow for custom entry. There are fields that are Common across Computer and Device records which means they appear for either object type. You can also add values to those columns that will apply to just Computer or Device records under their respective sections. Purchases have their own unique fileds you can create presets for.

    Under that section is the area for defining Custom Columns and their optional preset values.

         Custom Columns in the Web UI

    For each object type there are 10 custom labels. You must enter a Label before the gear for it will respond to being clicked. The gear brings up a modal much like the one for the custom values for the built in fields above, but it also includes a Type selector. This allows you to designate if the field is to be used for Text, Numeric values only, Date, e-mail, Phone, or URL. Depending on browser support, the Number type will restrict to numbers only, and the Date type will show a date picker widget. The URL type will show a link for that field in the Web UI for each record hyperlinked to the URL entered.

    Note that while you can blank out the name of a column and that may appear to delete it, the field is not removed in the database. All settings persist as well as data, it will simply be hidden for the time being. If you add a new name to that field it is not creating a new one, it is reactivating the old one under the new name.

    At the bottom of this page you can Customize Values for Lifecycle stages and Device Categories.

    Using KeyConfigure

    Defining both custom columns and value preset in KeyConfigure are handled in one window. For each object type you can click new column at the bottom of their section to add a new custom column. Selecting any column allows you to rename it and choose a data type if it's custom, as well as create a list of preset values. If you are creating multiple columns at once, click on another column after you finish defining the current one to have it save, then click new column again to make a new one.

         Define Columns in KeyConfigure

    Custom columns can be renamed but not removed.

    Entering and using Data

    There are multiple ways to populate these custom fields (as well as the Asset fields) and leverage that data.

    Manual Input

         Custom Pane in Computer Details Window

    In the Custom pane of a Computer Details window, you can edit/enter/save text values manually. Note though that if a value is discovered on a client (see below), this will overwrite anything that has been manually entered. Generally, you will either populate values on clients, or populate them manually in KeyConfigure - not both.

    Sorting and Filtering

    Once data is entered you can use it in various ways to sort and target computers and devices. By displaying these custom columns in the main windows you can sort by the column just as with any other data field. While only select fields appear in the GUI for making filters, any field can be used in the advanced capabilities. You can make Filters using the "Match this Filter" area using usr0 through usr9 as the column names. Those Filters can then be used at Targets in Reports.

    Importing Values

    Custom columns can also be imported in KeyConfigure from a text file. For details on how to do this, see the Import section of the Computers, Devices, or Purchases pages, or read the blog post on Importing Data to Computer Asset fields.

    Gathering values from KeyAccess

    While you can enter values for these various defined and custom fields in KeyConfigure or the Web UI, they can also be automatically populated in the case of Computers. These values can be read from each client computer from registry or plist values. Also note the Asset ID fields that are implemented in a similar way but serve a specific purpose.

    KeyAccess 7.1.0.7 and higher will look for local values to be used in custom fields and send them to KeyServer as part of the hardware audit.

    Windows KeyAccess looks in the registry in the directory:

    HKLM\SYSTEM\CurrentControlSet\Services\KeyAccess\Settings\options
    

    for keys assetCustom0, assetCustom1, ... assetCustom9. These keys can contain a text value which will be sent to KeyServer, or they can use special syntax to specify that KeyAccess should look in a different registry key or environment variable for the value to send to KeyServer.

    %foo%	GetEnvironmentVariable - i.e. any system environment variable can be populated by name like %windir% (not that you'd use that)
    <path>	GetRegistryValue - i.e. point to the registry key who's value you want to use
    
    For example, to get the description of the first cpu:
    <HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0\ProcessorNameString>
    

    Mac KeyAccess looks for the same property names in:

    /Library/Preferences/com.sassafras.KeyAccess.plist
    

    So one way to set these values on a Mac is using the command line:

    sudo defaults write /Library/Preferences/com.sassafras.KeyAccess assetCustom0 my_value
    

    On Mac as well, you can specify that KeyAccess should look in a different plist for the string value that will ultimately be sent to KeyServer (this functionality was added in KeyAccess 7.3.0.7). For example, to specify that the first Remote Desktop “info” field should be used for the first KeyServer custom hardware field, do this:

    sudo defaults write /Library/Preferences/com.sassafras.KeyAccess assetCustom0 "@com.apple.remotedesktop:Text1@"
    

    This special syntax must start and end with the @ character, and contain the id of the application followed by a colon and the name of the property to be read from the plist.

    If you want to avoid running defaults write on your clients, you can also customize the ksp-client installer using k2clientconfig to write these preferences during an install. For example, to use the Remote Desktop info fields as the first four custom computer fields, you would do:

    ./k2clientconfig -v assetCustom0=@com.apple.remotedesktop:Text1@
    		-v assetCustom1=@com.apple.remotedesktop:Text2@
    		-v assetCustom2=@com.apple.remotedesktop:Text3@
    		-v assetCustom3=@com.apple.remotedesktop:Text4@
    		ksp-client.pkg
    

    Whenever a value is found on the client, this is sent to KeyServer, and overwrites whatever value is already in the KeyServer database for this computer.