Identity Broker Forum

Welcome to the community forum for Identity Broker.

Browse the knowledge base, ask questions directly to the product group, or leverage the community to get answers. Leave ideas for new features and vote for the features or bug fixes you want most.

0
Completed

Add an ActionAfterCommit to allow cleanup on source system.

Jake Vosloo 9 years ago updated by anonymous 9 years ago 2

The current design of Identity Broker commits updates to entities to the database at internally defined intervals. This additional feature will allow the connector to run cleanup functions on the source system after it is certain that the commit on Identity Broker has succeeded.

The change should add something like the following method to the Unify.Framework.Collections.EnumerableExtensions library:

public static IEnumerable<T> ActionAfterCommit<T>(this IEnumerable<T> source, Action actionOnLast);

Edit (Adam): Another possible pattern is another interface that connectors could optionally implement.

0
Answered

Allow timings to specify start time

Ross Currie 14 years ago updated by anonymous 9 years ago 6

Identity Broker timings allows us to specify how often a particular operation runs... however (to my knowledge) it does not allow us to specify when to commence the timer for that timing. By default, timings start from the time the service starts.

For example, we can set a connector to perform a full import every 24 hours... but we cannot set the connector to import every 24 hours AT MIDNIGHT.

The ability to specify a start time for operations in Identity Broker (and also Event Broker 3) would be beneficial, as clients often ask us to schedule operations for out-of-hours.

0
Fixed

Schema key field not present for fields updated by connector during insert.

Adam van Vliet 14 years ago updated by anonymous 9 years ago 4

See the following stack trace:

System.NullReferenceException: Object reference not set to an instance of an object.
   at Unify.Framework.ArrayEqualityComparer`1.GetHashCode(T[] obj) in S:\hg\Framework\Core\v3.0.4\Source\Collections\Unify.Framework.Collections\Comparers\ArrayEqualityComparer.cs:line 65
   at Unify.Framework.MultiKeyValue.GetHashCode() in S:\hg\Framework\Core\v3.0.4\Source\Entity\Unify.Framework.Entity.Interfaces\MultiKeyValue.cs:line 98
   at System.Collections.Generic.GenericEqualityComparer`1.GetHashCode(T obj)
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector)
   at Unify.Repository.EntityRepositoryExtensions.ConvertConnectorEntitiesWithRepositoryEntities(IEnumerable`1 connectorEntities, IMultiKey`1 schemaKey, IQueryable`1 sourceEntities, Guid connectorId, IEnumerable`1 originalEntities) in C:\hg\Framework\Core\Master\Source\Entity\Unify.Repository.Entity\EntityRepositoryExtensions.cs:line 94
   at Unify.Framework.Adapter.SaveEntities(IEnumerable`1 entities, Boolean reflect) in S:\hg\Framework\Core\v3.0.4\Source\Adapter\Unify.Framework.Adapter\Adapter.cs:line 463
   at Unify.Framework.Adapter.SaveEntity(IAdapterEntity entity, Boolean reflect) in S:\hg\Framework\Core\v3.0.4\Source\Adapter\Unify.Framework.Adapter\Adapter.cs:line 387
   at Unify.Framework.CompositeAdapter.SaveEntity(IAdapterEntity entity) in S:\hg\Framework\Core\v3.0.4\Source\Adapter\Unify.Framework.Adapter\CompositeAdapter.cs:line 215
   at Unify.Framework.AdapterNotifierDecorator.SaveEntity(IAdapterEntity entityToSave) in S:\hg\Framework\Core\v3.0.4\Source\Adapter\Unify.Framework.Adapter\AdapterNotifierDecorator.cs:line 200
   at Unify.Framework.LDIFAdapter.ExportAdapterEntity(IAdapterEntity adapterEntity, Guid adapterId) in S:\hg\Framework\Core\v3.0.4\Source\Adapter\Unify.Framework.Adapter.Remoting\LDIFAdapter.cs:line 118
   at Unify.Framework.LDIFAdapterServiceHostDecorator.ExportAdapterEntity(IAdapterEntity adapterEntity, Guid adapterId) in S:\hg\Framework\Identity Broker\v3.0\Source\Unify.Framework.ConnectEngine\LDIFAdapterServiceHostDecorator.cs:line 69
   at SyncInvokeExportAdapterEntity(Object , Object[] , Object[] )
   at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
   at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)
   at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)",Normal

Related to issue IDBSP-6

0
Answered

Problem using Composite Key Relationship

Bob Bradley 13 years ago updated by anonymous 9 years ago 11

I am trying to configure an instance of a Relational.Composite transformation by following the online guide for this, specifically with the goal of deriving a new DN attribute via a composite key relationship. I was originally trying to find out what the parameter name might be (the equivalent group transformation has a "GroupTarget" parameter) but couldn't find anything (see comment on the link above). However, I since realised that I am probably supposed to be setting the "target" property of the dn element itself ... but now that I am doing this I am getting an erroneous "The column ValueLevel1ID is a pre-existing column in adapter Meta Tuple Value Adapter". I say erroneous because there is no such duplicate declaration.

My suspicion here is that most people have been using the "columnMappings" element with this transformation instead of "dn" and hence this question hasn't come up before - and the example xml appears to include redundant properties InputKey and RelationshipKey, so I am thinking there might be another doco inconsistency here too?

0
Fixed

Never Timing not evaluating correctly

Tony Sheehy 13 years ago updated by anonymous 9 years ago 22

A get all entities timing configuration of the following, will not evaluate and blocks access to the home page.

<getAllEntities>
        <Timing id="5793f282-2d8a-4fa8-8f9c-2f055334087c" name="DailyExclusion" useLocal="true">
          <ExclusionPeriods>
            <ExclusionPeriod daysExclusionApplies="Monday,Tuesday,Wednesday,Thursday,Friday,Saturday" start="00:00:00" end="23:59:59" />
          </ExclusionPeriods>
          <Timing id="66f8c661-8535-405f-ad53-5a17299b5030" name="DayExclusion" daysToExclude="Sunday,Monday,Tuesday,Wednesday,Thursday,Friday" useLocal="true">
            <Timing id="3280577b-fe63-405c-986e-d1d02f26ed0a" name="RecurringTimespanStandardTime" useLocal="true" startFrom="2012-05-21T14:00:11">
              <Timespan value="00:00:30" />
            </Timing>
          </Timing>
        </Timing>
      </getAllEntities>

0
Fixed

IdB4: Entity Search Search Terms button deletes search terms if incorrect term entered

Peter Wass 12 years ago updated by anonymous 9 years ago 6

I'm not happy with the text box and 'Add search terms' button.

*I tried adding a search term manually and nothing happened. I got the format wrong but there was no feedback on what was going on, it just did nothing.

*I then added a search term using the buttons above the attribute names and it created a term for me.

*I then tried adding it again manually and it failed (format wrong again). Once I got the format correct, however, it deleted the existing terms because I had the column name wrong. An error message when adding it rather then deleting all the terms would be good.

*finally I managed to get it to add once I termed everything properly.

Can I suggest also:

  • Have a format suggestion near the button to help
  • When clicking the 'Add' button over the column name, it defaults to Attribute 'hasValue', hasValue 'Equals'... 'HasValue' doesn't really mean much in the language we call English. I get that it means 'Attribute hasValue equals True' but it needs you to think about what it means rather then being obvious.

updatedentitysearch1.png
updatedentitysearch2.png
0
Completed

x86 service is replica of x64/Any CPU service

Shane Day (Chief Technology Officer) 14 years ago updated by anonymous 9 years ago 4

The x86 service is currently a replica of the x64/Any CPU service. This will create increased workload in the future for maintenance. In future versions, please use the x64/Any CPU service by using a bootstrap that is the 32-bit service.

0
Answered

Identity Broker 4.X alongside 3.X

Richard Courtenay 12 years ago updated by anonymous 9 years ago 2

I'm installing Identity Broker 4.X for the first time and noticed that the installation process removed my 3.X service from the services pane. During the installation I specified a new database and installed to a non default directory (different to my 3.X install).

Just wanted to know whether we are able to install them both side by side or if this is not supported. It may be useful in a personal dev environment to have access to both, not sure about client sites however.

Two other things.
1) I've noticed too that while the Identity Broker 3.X service was removed from the services pane, the installation didn't seem to uninstall the existing version, it just unregistered the service. I've attached a screen shot. There may be a bug there.
2) Also I could not see in the installation doco or Version 3 to 4 notes whether side by side is supported or not. Which ever case it is, it might be worth adding it there if I havent simply over looked it.


idb4.png
0
Fixed

Issues with non-required key fields when adding

Matthew Clark 13 years ago updated by anonymous 9 years ago 8

Found during IDB-197, the changing of the add method to prevent mismatching DNs (see IDBFIM-11) has exposed a new issue with non-required key fields. If a key field is not specified during the save operation (which is valid for systems such as SharePoint List as the target system generates it), null reference exceptions are perpetuated throughout. Estimate includes discovery, environment configuration, debugging and testing time.

Initial error occurred because the array equality comparer did not properly handle null values around hash codes. Fixing this has caused additional null reference exceptions to occur when the connector entity repository is checked to see if the key already exists.

0
Completed

"Run profile history" level logging for connectors

Matthew Clark 13 years ago updated by anonymous 9 years ago 4

See IDB-302. Identity Broker currently allows you to see each entity that has failed validation on an import, but it is all dumped to the log file. It would be useful if this information could be grouped kind of like the FIM run history shows you individual items that have failed following an import, and logged somewhere such as the connector statistics information.

Schema validation is an instance of a connector import failure that would not cause the entire batch to fail.