Giter Site home page Giter Site logo

lithnet / acma Goto Github PK

View Code? Open in Web Editor NEW
7.0 6.0 4.0 1.7 MB

Codeless business rules engine for FIM/MIM

Batchfile 0.01% C# 89.55% PowerShell 0.34% Smalltalk 0.07% TSQL 10.03%
fim codeless-rules-engine management-agent mim forefront-identity-manager microsoft-identity-manager

acma's People

Contributors

jamieb226-westrock avatar ryannewington avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

acma's Issues

Issue with creating shadowLinks

I am trying to setup shadow accounts for admin and test accounts. It seems, whenever I try to create the link from the shadow account back to the person class, that I get an error "Could not create the attribute. Specified argument is out of the range of valid values. Parameter name: entity". I'm specifying a link name that should be unique, my single valued boolean for provisioning control, and the single valued reference I created to hold the Admin Account reference. Any idea what I might try to get this working?

Unit Test Results don't support Transforms on constants

When specifying unit test expected values, modifiers applied to constants don't seem to apply. For example:

Disabled on %date%>>ToMonthDayYear by MIM

where ToMonthDayYear is a valid transform. In this case, the output is:

Disabled on 2017-05-01T15:46:29.000>>ToMonthDayYear by MIM

This is problematic for date sensitive values because unit tests would need to be updated every time they are run (with the current date).

Editor becomes unresponsive when manipulating pre-operation events

I have a recurring issue with the editor when manipulating queries for pre-operation events. It has a tendency to hang for a period of time and maybe crash. Windows shows Not Responding and the UI is non-responsive with the timer mouse icon. When this occurs, it may or may not let me continue working if I leave it alone. This behavior isn't observed in other parts of the UI. Let me know if there is any diagnostic or troubleshooting logs you need.

When creating MA no interface for configuring database

I've been going through the instructions for setting up the MA and am hitting a wall. I've configured a schema in the editor for the Lithnet.Acma database which is on another server but when attempting to add the ACMA MA on the Connectivity tab there is only a view for configuring the log path and when pressing "Next" I receive an error saying "Unable to retrieve schema. Error: 80230909" I'm running MIM 2016 with the November 2017 hotfixes installed. Any ideas?

No Blank Config File during Install

During the installation of ACMA, we had to stop during the install and create a new blank config file, otherwise the installation would fail.

  • Todd F.

Setup ended prematurely

Installation of ACMA fails with the not-so-helpful-message: "Lithnet ACMA setup wizard ended prematuerly because of an error". Is there anybody out there? - having an idea about what caused the error or what can be done to rectify this? Is there a logfile somewhere that can give som insight?

Failure to add a reference back link and shadow object link

Using the acma powershell cmdlets Add-AcmaSchemaReferenceBackLink and Add-AcmaShadowObjectLink allows you to create one back link and one shadow object link, then all attempts afterwards fail with the following errors:

Add-AcmaSchemaReferenceBackLink
_System.InvalidOperationException: Cannot add an entity that already exists.
at System.Data.Linq.Table1.InsertOnSubmit(TEntity entity) at System.Data.Linq.Provider.DataBindingList1.EndNew(Int32 itemIndex)
at System.ComponentModel.BindingList1.InsertItem(Int32 index, T item) at System.Data.Linq.Provider.DataBindingList1.InsertItem(Int32 index, TEntity item)
at System.ComponentModel.BindingList1.AddNewCore() at System.Data.Linq.Provider.DataBindingList1.AddNewCore()
at System.ComponentModel.BindingList`1.System.ComponentModel.IBindingList.AddNew()
at Lithnet.Acma.AcmaDatabase.CreateReferenceLink(AcmaSchemaObjectClass forwardLinkObjectClass, AcmaSchemaAttribute forwardLink, AcmaSchemaObjectClass backLinkObjectClass, AcmaS
chemaAttribute backLink, IBindingList bindingList)
at Lithnet.Acma.AcmaDatabase.CreateReferenceLink(AcmaSchemaObjectClass forwardLinkObjectClass, AcmaSchemaAttribute forwardLink, AcmaSchemaObjectClass backLinkObjectClass, AcmaS
chemaAttribute backLink)
at Lithnet.Acma.PS.AddAcmaSchemaReferenceBackLink.ProcessRecord()
Add-AcmaSchemaReferenceBackLink : Cannot add an entity that already exists.
At line:6 char:1

  • Add-AcmaSchemaReferenceBackLink -SourceObjectClass person -SourceAttr ...
  •   + CategoryInfo          : NotSpecified: (:) [Add-AcmaSchemaReferenceBackLink], InvalidOperationException
      + FullyQualifiedErrorId : UnknownError,Lithnet.Acma.PS.AddAcmaSchemaReferenceBackLink_
    
    
    

Add-AcmaShadowObjectLink
_System.InvalidOperationException: Cannot add an entity that already exists.
at System.Data.Linq.Table1.InsertOnSubmit(TEntity entity) at System.Data.Linq.Provider.DataBindingList1.EndNew(Int32 itemIndex)
at System.ComponentModel.BindingList1.InsertItem(Int32 index, T item) at System.Data.Linq.Provider.DataBindingList1.InsertItem(Int32 index, TEntity item)
at System.ComponentModel.BindingList1.AddNewCore() at System.Data.Linq.Provider.DataBindingList1.AddNewCore()
at System.ComponentModel.BindingList`1.System.ComponentModel.IBindingList.AddNew()
at Lithnet.Acma.AcmaDatabase.CreateShadowLink(AcmaSchemaObjectClass shadowClass, AcmaSchemaAttribute provisioningAttribute, AcmaSchemaAttribute referenceAttribute, String name,
IBindingList bindingList)
at Lithnet.Acma.AcmaDatabase.CreateShadowLink(AcmaSchemaObjectClass shadowClass, AcmaSchemaAttribute provisioningAttribute, AcmaSchemaAttribute referenceAtttribute, String name
)
at Lithnet.Acma.PS.AddAcmaShadowObjectLink.ProcessRecord()
Add-AcmaShadowObjectLink : Cannot add an entity that already exists.
At line:6 char:1

  • Add-AcmaShadowObjectLink -Name "legacyStudentLike" -ShadowObjectClass ...
  •   + CategoryInfo          : NotSpecified: (:) [Add-AcmaShadowObjectLink], InvalidOperationException
      + FullyQualifiedErrorId : UnknownError,Lithnet.Acma.PS.AddAcmaShadowObjectLink_
    
    

Unloading the PS module and reloading does not resolve the issue.

Disabled Pre-operation events

Pre-operation events that are disabled seem to run anyway. We disabled a number of events in the config file and we still see them triggered in the log file.

For example:

Event:

 <event i:type="operation-event">
   <description i:nil="true" />
   <disabled>true</disabled>
   <name>Trigger company updates</name>
   <operation-types>full-import delta-import export</operation-types>
   <recipient-queries>
     <dbquery i:type="dbquery-group">
       <description i:nil="true" />
       <dbqueries>
         <dbquery i:type="dbquery-group">
           <description i:nil="true" />
           <dbqueries>
             <dbquery i:type="dbquery-byvalue">
               <description i:nil="true" />
               <operator>Equals</operator>
               <search-attribute>
                 <name>HRCompany</name>
               </search-attribute>
               <value-declarations>
                 <value-declaration>
                   <transform-string i:nil="true" />
                   <value>WestRock Services, Inc.</value>
                 </value-declaration>
               </value-declarations>
             </dbquery>
             <dbquery i:type="dbquery-byvalue">
               <description i:nil="true" />
               <operator>Equals</operator>
               <search-attribute>
                 <name>HRCompany</name>
               </search-attribute>
               <value-declarations>
                 <value-declaration>
                   <transform-string i:nil="true" />
                   <value>WestRock MWV  LLC</value>
                 </value-declaration>
               </value-declarations>
             </dbquery>
           </dbqueries>
           <display-name i:nil="true" />
           <operator>none</operator>
         </dbquery>
         <dbquery i:type="dbquery-byvalue">
           <description i:nil="true" />
           <operator>Equals</operator>
           <search-attribute>
             <name>objectClass</name>
           </search-attribute>
           <value-declarations>
             <value-declaration>
               <transform-string i:nil="true" />
               <value>person</value>
             </value-declaration>
           </value-declarations>
         </dbquery>
       </dbqueries>
       <display-name i:nil="true" />
       <operator>all</operator>
     </dbquery>
   </recipient-queries>
 </event>

Log file entries:

9/9/2017 10:36:41 AM: Sending event Trigger company updates to person:Roger Audy:0d9cdb9c-e36a-4f7c-9517-b13470a4711d
9/9/2017 10:36:41 AM: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
9/9/2017 10:36:41 AM: Processing CSEntryChange for object person:Roger Audy:0d9cdb9c-e36a-4f7c-9517-b13470a4711d
9/9/2017 10:36:41 AM: Change details (this object): Modification type: Update; Changed attributes:
9/9/2017 10:36:41 AM: Incoming events: Trigger company updates

Error importing ACMA Rules engine MA

The server encountered an unexpected error:

"Could not load file or assembly 'Lithnet.Acma.ServiceModel.Sync, Version=1.1.6258.25372, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

at Lithnet.Acma.Ecma2.ManagementAgent..ctor()

InnerException=>
none
"

"Specified argument was out of the range of valid values" when creating new object class

$error[0].Exception.StackTrace
at System.Data.Linq.EntitySet1.Insert(Int32 index, TEntity entity) at System.Collections.ObjectModel.Collection1.System.Collections.IList.Add(Object value)
at Lithnet.Acma.AcmaDatabase.CreateMapping(AcmaSchemaObjectClass objectClass, AcmaSchemaAttribute attribute, AcmaSche
maAttribute inheritanceSourceAttribute, AcmaSchemaObjectClass inheritanceSourceObjectClass, AcmaSchemaAttribute inherite
dAttribute, IBindingList mappingsBindingList, Boolean isBuiltIn)
at Lithnet.Acma.AcmaDatabase.CreateBuiltInMappings(AcmaSchemaObjectClass objectClass)
at Lithnet.Acma.AcmaDatabase.CreateObjectClass(String name, Boolean canResurrect, AcmaSchemaObjectClass shadowFromCla
ss)
at Lithnet.Acma.PS.AddAcmaSchemaObjectClass.ProcessRecord()

client and sync assemblies are version incremented

Lithnet.Acma.ServiceModel.Client and Lithnet.Acma.ServiceModel.Sync do not seem to be updating the assembly version on solution builds.
This is causing the installer to see them as the same file version and not deploy new versions (1.0.0.0) during upgrades, despite the contents of the file having been changed.
This prevents the service from being started after an upgrade with the following error:

Service cannot be started. System.TypeLoadException: Could not load type 'Lithnet.Acma.ServiceModel.IAcmaResourceService' from assembly 'Lithnet.Acma.ServiceModel.Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
at Lithnet.Acma.Service.ServiceMain.StartAcmaServiceHost()
at Lithnet.Acma.Service.ServiceMain.OnStart(String[] args)
at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)

Export operation times out on member changes for large groups (~25K)

When exporting the members attribute on a large group (~25K) members, the operation seems to timeout and gives the following error:

The operation is not valid for the state of the transaction

Details:

at System.Transactions.TransactionState.EnlistPromotableSinglePhase(InternalTransaction tx, IPromotableSinglePhaseNotification promotableSinglePhaseNotification, Transaction atomicTransaction, Guid promoterType)
at System.Transactions.Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification promotableSinglePhaseNotification, Guid promoterType)
at System.Transactions.Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification promotableSinglePhaseNotification)
at System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx)
at System.Data.SqlClient.SqlInternalConnection.Enlist(Transaction tx)
at System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction)
at System.Data.ProviderBase.DbConnectionPool.PrepareConnection(DbConnection owningObject, DbConnectionInternal obj, Transaction transaction)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource1 retry)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource1 retry) at System.Data.SqlClient.SqlConnection.Open() at Lithnet.Acma.AcmaDatabase.GetNewConnection() at Lithnet.Acma.MAObject.Commit() at Lithnet.Acma.MAObjectHologram.CommitCSEntryChange(MAObjectHologram triggeringObject, IList1 attributeChanges, IList1 incomingEvents, IList1 constructors, Int32 depth)
at Lithnet.Acma.MAObjectHologram.CommitCSEntryChange(CSEntryChange csentry, Boolean isUndeleting)
at Lithnet.Acma.CSEntryExport.PerformCSEntryExportUpdate(CSEntryChange csentryChange, Boolean& referenceRetryRequired)
at Lithnet.Acma.CSEntryExport.PutExportEntry(CSEntryChange csentry, Boolean& referenceRetryRequired)
at Lithnet.Acma.Service.AcmaSyncService.ExportPage(ExportRequest request)

FIM Sync with local service account prevents ACMA Service from Starting

When the FIM Sync Service account is running with a local account (.\SyncAccount). The ACMA Service fails to start. The SyncServiceAuthorizationManager constructor grabs the Sync Service Account from the registry and attempts to pull the security identifier. However, it fails if the service account name is in the ".\SyncAccount" format.

A quick fix to solve this was to change the service account to "computername\SyncAccount".

9/16/2020 11:38:54 PM: An error occurred while starting the service


An exception has occurred in OnStart
Type: System.TypeInitializationException
Message: The type initializer for 'Lithnet.Acma.Service.SyncServiceAuthorizationManager' threw an exception.
Source: Lithnet.Acma.Service
TargetSite: Void .ctor()
StackTrace:
at Lithnet.Acma.Service.SyncServiceAuthorizationManager..ctor()
at Lithnet.Acma.Service.ServiceMain.StartSyncServiceHost()
at Lithnet.Acma.Service.ServiceMain.OnStart(String[] args)


Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.