Author: Alexey Skalozub
Website: https://github.com/pieceofsummer/FIMDelta
Released: March 13, 2013
Cost: Free
FIMDelta is a FIM Consultant Tool that allows you to analyze the changes.xml file that is generated through the FIM Portal migration process and produce a subset of changes that you can then apply to your FIM Portal.
When using the FIM Portal migration scripts, running either SyncSchema.ps1 or SyncPolicy.ps1 produces a file called changes.xml, which has all of the changes between your pilot environment and production environment for your schema or configuration. This file can be somewhat difficult to read and so FIMDelta simplifies this process by parsing the XML file and presenting it in an easy-to-view interface:
This interface then allows you to group and collapse/expand changes by Object Type or Operation – which gives you the flexibility to look at subsets such as all SynchronizationRule changes or all Delete operations. It even resolves any references within the changes.xml, so instead of just seeing a guid, you can see exactly which object is being referenced. I found this extremely useful when wanting to remove certain attributes from a FilterScope that I was migrating.
Lastly, once you’ve deselected any changes you don’t want to bring into your target environment, FIMDelta allows you to save your subset of changes into a new changes.xml file. You can then take this file and import it directly into your production environment – although I did find that in some cases you have to be careful to make sure you remove all references to any policies that you decide not to import.
The author, Alexey Skalozub, describes FIMDelta as a “Helper utility to selectively apply changes between developer and production FIM2010 servers”, and I’ve found it to be useful in several particular situations:
- Reinstalling FIM Portal:
By comparing your previous configuration against the pristine “fresh install” configuration, you are able to selectively bring components of your FIM configuration back into your production environment, without overwriting any default FIM policies. I’ve found this is a good way to “clear out the clutter”. - Migrating between different versions:
This is particularly useful when migrating between environments that are operating on different versions of FIM. In this case, there may be some changes that are strictly due to the versioning differences in FIM. FIMDelta allows you to only import changes directly relevant to your configuration. - Performing a “piece of mind” check during migrations:
When you’ve been working on a FIM release for a while, it can be hard to remember all the changes you’ve made, and the way FIMDelta presents a summary of the changes is a fantastic way to review and document any changes before setting them live in production - Selectively deploying new features:
It’s not recommended, but it’s possible that you might be concurrently working on several new features of your FIM solution in your development environment, but that you don’t want to deploy them all at once. Using FIMDelta, you can choose to deploy only specific functionality into your production environment, allowing you to have a greater degree of flexibility to perform concurrent development
In my opinion, FIMDelta is the number one tool that every FIM Specialist needs in their toolkit – you simply should not be doing migrations without it. The only thing I’d suggest this tool needs is the ability to export the finalised changes into a documentable format. For more information, check out the FIMDelta website.