SoftwareIDM Logo

About Uplift

Uplift is a helper library for writing provisioning and extension DLLs for Microsoft FIM. It is called Uplift because it under-girds synchronization logic, allowing a simpler functional syntax rather than traditional imperative logic.

You can download Uplift Here

Uplift provides utilities to aid in attribute flow and provisioning, writing log entries, sending notification emails, and looking up values in SQL and XML files.

Uplift was created by Peter Sidebotham and Todd Mollerup for SoftwareIDM inc. and has been used as licensed software for several years in enterprise FIM deployments.

For enterprise support, contact SoftwareIDM (

Uplift is released on this site as open source software under the Ms-RL license (Microsoft Reciprocal License).

Uplift Components and their Benefits

  • RuleEngine
    • The RuleEngine provides a way to create advanced declarative flow rules in Synchronization Manager similar to those that can be defined with Portal Synchronization Rules. Rule definitions that would normally require repetitive boilerplate code in a Rules Extension can now be created without code. Also, unlike portal rules, the RuleEngine framework is extensible.
  • Provisioning
    • The Provisioning framework allows you to perform provisioning using declarative RuleEngine rules in your app.config file
  • LogWriter
    • The Uplift LogWriter provides a standard way to log events and errors to a database table. The Uplift LogWriter class has the additional virtue of queuing entries to write asynchronously on a separate thread which improves performance when many entries must be written.
  • Config
    • The Uplift tools provide an easy way to place an App.config file in the FIM Extensions folder. This provides a convenient place to store environment specific settings and connection strings, as well as allowing configuration of Log and Mail tables and templates. The Config class provides handy predefined constants for working with userAccountControl and groupType values. The Config class also has helper methods for loading and reading xml data mapping files.
  • Mail
    • The Mail class provides an easy way to queue notification email messages. The Mail class allows templates to be defined in an App.config file for improved maintainability, and will queue messages in a table to be sent after synchronization completes. This has two advantages. First performance is improved because synchronization does not block while waiting for SMTP negotiation. Second, notifications can be sent after the corresponding changes have actually been exported to connected systems.
  • SqlHelper
    • The SqlHelper class provides a simple abstraction to perform one-liner SQL queries. The tasks of looking up the DB connection string in the config file, managing the database connection, and setting up the SQLParameters are encapsulated in single method calls for ExecuteScalar, GetReader, and ExecuteNonQuery calls.

Supports FIM 2010 and later and requires Microsoft .NET 3.5 or later.

Copyright © SoftwareIDM