Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Workflow support (#208) * SecureReference properties Introducing properties to store the Id for SecureReferences for future lookup * ComboBox control resizing form to support and introducing Combo Box dropdown to support list of Run As Accounts * workflow form Adding dedicated form for controlling whether or not the workflow is enabled and how often it should run * include workflow form adding workflow form/resources to build * workflow icon adding workflow icon for the workflow form/wizard step * workflow placeholder Creating section for workflow engine feature * workflow icon including for readme * screenshot alignment forcing center alignment of graphic * load secure reference bindings Defining variables/bindings for loading a list and loading the selected item for the Exchange Web Services connection * save secure reference id saving the selected secure reference to the MP for easier lookup/load * file path for connector extending settings class with new data point to store the location of the smletsexchangeconnector.ps1 file * connector text field adding new text field for smlets exchange connector PowerShell file path * browse button action updating code behind for DLL xaml for the Browse button for finding the smlets exchange connector PowerShell script file path * combobox control resizing form to support and introducing Combo Box dropdown to support list of Run As Accounts * cireson portal secure reference bindings updating bindings between the UI and the MP for saving the ID of the secure reference to be used when authenticating to the cireson portal * reference to new project Adding build reference to new project within the solution for "SMLets.Exchange.Connector.Resources" * workflow assembly project New project to be included in the SMLets Exchange Connector solution to compile the DLL file to use the workflow * workflow dependencies With the introduction of the workflow, new dependencies are required to run the workflow/powershell * update workflow Adding logic that modifies an already existing instance of the SMLets Exchange Connector Workflow (i.e. Monitoring Rule). This updates if the workflow is enabled, how often the workflow runs per the UI and which secure reference to use * updating wiki url made the URL for configuring workflows ready for final release * update workflow improvement previously hard coded the management pack alias name. Now it's dynamically retrieved based on the Secure Reference that was selected and then used to update the Rule's XML * create workflow - first pass Rule creation still incomplete as it lacks a parent XML nodes for Data Source and Write Action that exist outside of the currently defined XML strings * create workflow - second pass The logic now exists to create a Workflow (monitoring) Rule from scratch if it doesn't exist. Thereby closing the loop between update and create processes. * smexco file path binding adds bindings to the settings UI for the smexco file path * EWS variables updating variables names for EWS to be more unique within the script * About verbiage updating the wording on the about page given the advent of this version's new functionality * parameter case updating case for parameters to match dependency registers of runscript.cs * workflow ui bindings bindings between the UI and setting the workflow values * workflow wizard step adding the workflow form to the wizard * missing try/catch for portal run as if the value isn't set the the MP would throw an error * load workflow settings load the workflow settings to the UI from the SCSM LFX mp if they are present * workflow logic the introduction of determining if the workflow is being used eliminates the need for renaming the ews variables * logging (#210) * logging function Still work to be done here (such as more validation sets per function and creating the event log), but this begins the standardization of logging regardless of deployment strategy. * error - failure to read inbox If the connection to Exchange can't be made, an event is recorded and the connector stops further processing * info - messages processed logging for the number of messages to be processed and then a counter that increments as each message is processed * info - new-workitem basic logging for the New-WorkItem function. Shows the message that came from Exchange and was passed into the function that's about to be used to create the work item, then SCSM specific concepts around From -> Affected User translation, and finally the created work item that was created. Given usage of ACS, AML, or regex patterns could be used to override the default work item type. This logging also highlights the initial work item type and potentially what the final result was * info - update-workitem introductory logging for update-workitem function * info - update-workitem - RA adding verbose logging support for review activities * error - ews connection moving failure to connect to exchange to a critical error which requires logging to be enabled * logging - verify workitem adding a mix of info and warning logging to Verify-WorkItem function * logging icon adding logging icon for readme * logging settings adding log properties * logging bindings creating bindings between ui and settings mp * logging forms adding forms for the logging page * include logging forms adding logging forms to the build * logging wizardstep adding a new wizard step to the wizard story for the new Logging page/form * pull logging from settings Creating variable to pull log settings from the Settings MP * new-smexcoevent updates making sure the function references the logging variables from the Settings MP and that the Event Log actually exists so the function can write to the Windows Event Log in the event the logging is enabled and it's being run from the workflow * messages to process and variable expansion changing logging so that messages to process must equal some value, lest generate event log noise when there is nothing to process. Also found variable expansion missing for CC/Related Users * update-workitem, try/catch to if/else moving the logging in update-workitem to an if/else to properly capture the difference between an Action and a Comment * typo correcting a mispelling * versioning updating versioning for Settings UI header * next version updating next build version for solution * inline notes updating versioning notes within the script * workflow verbiage updating text for workflows to reference the ability to use run as accounts * problem saving logging type (#213) Without this change, if you are attempt to log using workflows. You need to change the logging level to something else, save it, re-open, and then choose Workflows. * more logging for functions (#211) * function call change and new ordering Changing how the function is called in PowerShell as it makes it easier to CTRL+F and find where logging occurs on a per function level. i.e. New-SMEXCOEvent -Source "General" can be done unique to all of the function calls but New-SMEXCOEvent -ID 0 would span several different types of functions as this functionality grows. Also re-ordering the event numbering to log a verbose event to show the connection to Exchange was succesful * Schedule-WorkItem and Get-SCSMUserByEmailAddress adding logging options for setting/nulling Scheduled Work Items with appointments/meetings as well as details around Get-SCSMUserByEmailAddress * Create-UserInCMDB Opting to make this part of regular Informational events as opposed to requiring Verbose logging. Introducing a variable to hold the projection -passthru result to test for existence on the optional logging step * Send-EmailFromWorkflowAccount and Test-KeywordsFoundInMessage adding logging for when an email is sent from the workflow account and if a match is found when attempting to match keywords to drive IR/SR * event call order missed re-ordering one of the new-smexcoevent calls * evening out event parameters While they aren't getting used just yet, the amount of incoming parameters did not equal the amount that could be set * logging sources adding more logging sources to keep parity with inbound parameters * new event typo creating a new event in update-workitem function had a typo that would have prevented a successful log entry * portal workflow integration (#214) * cireson portal token call updating the call to retrieve an auth token from the Cireson portal depending on if workflows are being used or not. * portal secure reference if the secure reference can't be set, it must have been left blank in the UI. This forces the selection of the first secure reference to be set to the mp so we can ultimately set this as a workflow parameter. * workflow rule update action When the form is saved, the rule is updated with 3 new parameters for use with optional cireson portal integration. This approach dynamically the Workflow Parameters and then inserts those Workflow Parameters into the Workflow to be set with the WriteActionCollection * workflow rule create action When the rule doesn't exist, the rule is created with 6 parameters for use with optional cireson portal integration. This approach dynamically builds the Workflow Parameters and then inserts those Workflow Parameters into the Workflow to be set with the WriteActionCollection * portal params adding new parameters to for authenticating with the cireson portal * token call change updating call to retrieve portal tokens * variable naming improving variable names * forced bind if a selection wasn't made for which run as account to use for the cireson portal, the rule fails to build several lines down (3548-3737) * updating versioning adding beta2 to form header for next release * logging url adding a hyperlink on the logging page to redirect to the Wiki to understand the logging levels in further detail * url code behind adding the action for the Logging URL on the code behind * inline notes updating versioning * double username logging event should show domain\user * Exchange Impersonation (#215) * impersonation bool Introducing a new settings value for deciding whether or not Exchange Impersonation is used * impersonation checkbox adding a checkbox to control whether or not impersonation is used when authenticating to exchange * bindings for Impersonation adding variables and bindings to the UI to save back to the Admin Settings class and load the value * impersonation for workflow With Impersonation, the email address used for $workflowEmailAddress is the SCSM Inbox that receives mail but the account that authenticates to it (e.g. the selected Run as Account) is _not_ the actual AD User tied to the address. Thus if the workflow is using Impersonation, further define the $exchangeService object with the ImpersonatedUserId. * logging for Azure (#216) * azure function logging introduce logging to azure functionality * logging property typo Typo on the source vs. target language * try/catch for Rule's run as If a Run as Account has not been selected for use with the Cireson portal, the Workflow Rule fails to correctly build. This ensure that the rule is always created and updated correctly. * incorrect syntax Made the mistake of falling back on PowerShell style IF syntax instead of C# IF syntax * versioning rev updating to rc1 * technical grammar update The block of text to the Default Resolution Categories configuration section is misleading/confusing * more logging opportunities The New-SMExcoEvent function is being brought to the top of the script so that any future calls to it can be reliably made * logging function typo function name was spelled incorrectly * prepping for final - title bar Updating versioning to prepare for final v3 release * prepping for final - pwsh notes Updating versioning to prepare for final v3 release * dynamic title bar Updating the UI's Title bar to be reflective of the installed MP version rather than manually update on subsequent releases * next build versions upping next build versions
- Loading branch information