In this article:
Introduction - Overview of Patch Notification Bots
General Settings - General bot settings
Patch Filter Settings - How to filter patches using patch filter conditions
Bot Settings - How to control the bot behaviour
Available Metadata Properties - Full list of properties available for patch filter conditions
Further Information - Where to go for further information
Introduction
A Patch Notification Bot's primary function is to generate Patch Notifications for new patches, while filtering them in or out based on metadata properties. If the Patch matches the specified filter expression(s), a Patch Notification will be generated and sent to the Patch Notification Cycle that has been executed via either the Patching Strategy or the Deployment Channel to which this Bot belongs.
Notification Bots are optional components of Patching Strategies and Deployment Channels. These are the only places where these objects can exist and will not execute independently.
In the real world, Notification Bots are used to alert Patch administrators about the release or deployment of new Patches. You can use Notifications to inform interested parties about newly published updates, or upcoming Patch deployments in the environment.
Notifications can take different forms, including SMS/Text Messages, E-Mail, Microsoft Teams, WhatsApp, or custom notifications via Adaptiva Workflows.
One thing to note, is that bots are NOT used to filter by Product. The Products are defined in the Patching Strategy, and the bots are used to determine whether updates should be processed by the strategy (by using filters) and to route them to the appropriate Patching Process and Deployment Channels.
General Settings
The general settings section is for basic identifiable information, Name and Description.
Name: The name used to identify this Notification Bot
Description: (Optional) A description used to describe the purpose or functionality of the bot.
Patch Filter Settings
The purpose of patch filter settings is to filter patches based on associated properties, either including or excluding them from the processing by this bot. Patches that meet the filter criteria will be processed, while those that do not will be disregarded.
It's important to note that patch filter settings are not mandatory. If not specified, the bot will process all patches.
You have the option of specifying a single filter condition or grouping multiple filter conditions using AND, OR, and NOT logic, allowing for a high level of configurability.
To add a patch filter condition, simply click the ellipse button located on the right-hand side.
To add a single condition, click on "Add Operating Condition"
To add multiple conditions, select "Add Operator" and choose either "AND," "NOT," or "OR."
Choose "AND" if you want all conditions to be true. Choose "OR" if you want any condition to be true. Choose "NOT" if you do not want any condition to be true.
If you are adding multiple conditions, after choosing your operator, click on the ellipse button again and either add another operator or choose "Add Operating Condition."
In the overlay for "Creating Operating Condition," choose an appropriate data column. This is the metadata property field that will be compared with the incoming patch to determine whether it should be included or excluded.
Common metadata properties include the following:
- General.ExpiredByVendor -- indicates whether the patch has been retired by the vendor.
- General.IsBugfix -- indicates that the patch is a bug fix
- General.IsMajorFeature -- indicates that the patch is a new major version
- General.IsMinorFeature -- indicates that the patch is a new minor version
- General.IsSecurityUpdate -- indicates that the patch is considered a security update
- General.IsServicePack -- indicates that the patch is a service pack
- General.IsUpdateRollup -- indicates that the patch is an update rollup
- Install.InterferingProcesses -- if not null, shows the processes that would need to be terminated prior to installation
- Install.InternetRequired -- indicates whether an internet connection is required to install
- Install.LoggedOnUser -- indicates whether a user must be logged on to install
- Install.RequiresReboot -- indicates whether a reboot is required following installation
- Relationships.Supersedes -- if not null, shows the IDs of any software that this patch supersedes
- Risk.KnownExploitExists -- indicates whether there is a known exploit associated with this patch (e.g. ZeroDay)
- Risk.SecurityExposureLevel -- indicates the risk level associated with this patch
It's worth noting that there are built-in Notification Bots available for all of the above common metadata properties. In many cases, it may be appropriate to either use these bots directly or create a copy and modify it to suit your needs.
For a comprehensive list of all available metadata properties, please refer to the bottom of this article.
Bot Settings
The Bot Settings are responsible for defining the bot's behaviour and controlling what occurs when the bot processes a patch that matches the filter.
The first aspect to consider is whether the bot settings should be manually provided or if a custom workflow should be utilized to dynamically configure the bot settings.
In most cases, the default setting (Notification Settings) would be the most suitable and commonly used.
When the Bot Settings radio button is toggled, the available form options change accordingly.
Urgency
The Notification Urgency setting is used to control which Notification Cycle new patches will be added if they meet the Patch Filter. The Notification Urgency will be compared against the urgency defined in any Notification Settings within the Patching Strategy or Deployment Channel to which this bot is assigned.
If the Urgency setting matches the Urgency defined in the Bot, that Notification Cycle will process the Notification. If the Urgency does not match any configured Notification Settings, then the Notification Cycle will not launch and no notification will be sent.
Output Expression
The Output Expression is a free text field that should be used to enter the text to be sent in the body of the notification. For example, this would represent the E-Mail body, or the contents of a SMS/Text Message, Microsoft Teams message, or WhatsApp message.
Note: If the target Communication Providers support aggregation, and multiple notifications are to be sent together, the messages defined in the Output Expression will be appended to each other.
Communication Providers
Add Communication Providers to determine what type of communication will be sent when a Patch which matches the Bot's filter expression is processed by this Bot.
Choose between one or more of the following built-in Communication providers:
- HTMLEmailCommunicationProvider - Sends an E-Mail formatted as HTML
- SimpleEmailCommunicationProvider - Sends an E-Mail formatted as plain text
- TeamsCommunicationProvider - Sends a Microsoft Teams message
- TextCommunicationProvider - Sends an SMS/Text message
- WhatsAppCommunicationProvider - Sends a WhatsApp message
Note 1: The E-Mail addresses and phone numbers that these communication providers will send to will be those defined on the user/administrator objects for the users in the target Notification Chains.
Note 2: It is possible to create custom notification providers, in addition to the built-in providers listed above. Custom Notification Providers can use Adaptiva Workflows to provide custom notifications.
Bot Workflow
If choosing the Bot Workflow option under Bot Settings, you are prompted to select an Adaptiva Workflow to use to retrieve the Bot settings.
For information on creating workflows, please see articles in this section.
When authoring a workflow to be used as a Patch Notification Bot workflow, the WorkflowPurpose property must be set to PatchNotificationBot.
On the Start node, a set of JAVA OBJECT properties named PatchingStrategy, Metadata, and NotificationBot are exposed. These properties contain the data that gets passed into the workflow when a new patch gets processed.
On the End node, a set of JAVA OBJECT properties named IgnorePatch, NotificationUrgency, NotificationMessage, and CommunicationProviders are exposed. These properties are returned and processed by the Notification Cycle within the Notification Settings in the Patching Strategy or Deployment Channel where the bot is referenced.
- IgnorePatch - Boolean - true/false to indicate whether the patch should be ignored
-
NotificationUrgency - Whole Number - one of the following values to indicate the urgency. The Notification Urgency will be compared against the urgency defined in any Notification Settings within the Patching Strategy or Deployment Channel to which the bot is assigned.
- 0 - Low
- 1 - Normal
- 2 - High
- 3 - Critical
- NotificationMessage - Text - The message that will get passed to the notification cycle.
- CommunicationProviders - TextArray - Array containing the names of the communication providers that should be used.
The workflow can use whatever logic is desired to set these properties.
Available Metadata Properties
Object ID | Version | Enabled |
Parent Folder ID | Name | Description |
Parent Object ID | Product | Content.ContentId |
Content.SourceType | Content.VendorUrl | Content.AdaptivaUrl |
Content.FileName | Content.Sha256Hash | Content.Size |
ContentForRepair.ContentId | ContentForRepair.SourceType | ContentForRepair.VendorUrl |
ContentForRepair.AdaptivaUrl | ContentForRepair.FileName | ContentForRepair.Sha256Hash |
ContentForRepair.Size | ContentForUninstallation.ContentId | ContentForUninstallation.SourceType |
ContentForUninstallation.VendorUrl | ContentForUninstallation.AdaptivaUrl | ContentForUninstallation.FileName |
ContentForUninstallation.Sha256Hash | ContentForUninstallation.Size | Extensions.PreInstallationActionSequence |
Extensions.PostInstallationActionSequence | Extensions.PreRepairActionSequence | Extensions.PostRepairActionSequence |
Extensions.PreUninstallationActionSequence | Extensions.PostUninstallationActionSequence | General.Schema |
General.ExpiredByVendor | General.Name | General.ShortName |
General.Description | General.VendorVersion | General.VendorName |
General.ReleaseDate | General.ReleaseNotes | General.AdditionalInformationUrl |
General.MsiGuid | General.IsSecurityRollup | General.IsUpdateRollup |
General.IsMinorFeature | General.IsMajorFeature | General.IsServicePack |
General.IsBugfix | General.TargetType | Icon.IconID |
Icon.CompressedData | Install.InstallerType | Install.PreActionSequence |
Install.ActionSequence | Install.CustomizerUI | Install.PostActionSequence |
Install.AutoItScript | Install.InterferingProcesses | Install.InterferingProcessesToWaitFor |
Install.InternetRequired | Install.LoggedOnUser | Install.RequiresReboot |
Install.DiskSpaceRequired | Install.MaxRunTime | Media.FileNamePattern |
Media.KeyFileName | Media.MediaDetectionSensorExpression | Realtime.RegistryIndicators |
Realtime.FolderIndicators | Relationships.Product | Relationships.PrerequisiteInstalls |
Relationships.FollowupInstalls | Relationships.Supersedes | Relationships.SupersedesRemovalRequired |
Relationships.SupersdedBy | Relationships.Parent | Relationships.Children |
Repair.InstallerType | Repair.PreActionSequence | Repair.ActionSequence |
Repair.CustomizerUI | Repair.PostActionSequence | Repair.AutoItScript |
Repair.InterferingProcesses | Repair.InterferingProcessesToWaitFor | Repair.InternetRequired |
Repair.LoggedOnUser | Repair.RequiresReboot | Repair.DiskSpaceRequired |
Repair.MaxRunTime | Risk.CveIds | Risk.CvssScores |
Risk.SecurityExposureLevel | Risk.KnownExploitExists | Risk.Criticality |
Rules.InstalledAuthoringRuleObject | Rules.InstallableAuthoringRuleObject | Rules.ApplicableAuthoringRuleObject |
Rules.InstallPathSensorExpression | Rules.InstalledVersion | Tracking.Method |
Tracking.WebScrapeURL | Tracking.WebScrapeDescription | Tracking.WebScrapeInterval |
Tracking.WebScrapeScanDate | Tracking.WebScrapeIdentificationAttributes | Tracking.WebScrapeMonitoringAttributes |
Uninstall.InstallerType | Uninstall.PreActionSequence | Uninstall.ActionSequence |
Uninstall.CustomizerUI | Uninstall.PostActionSequence | Uninstall.AutoItScript |
Uninstall.InterferingProcesses | Uninstall.InterferingProcessesToWaitFor | Uninstall.InternetRequired |
Uninstall.LoggedOnUser | Uninstall.RequiresReboot | Uninstall.DiskSpaceRequired |
Uninstall.MaxRunTime | UserPortal.Name | UserPortal.Description |
UserPortal.Version | UserPortal.VendorName | UserPortal.Categories |
UserPortal.Keywords |
Further Information
For further information, please see the other resources in the Technical Reference Library or speak to a member of Adaptiva Support.
If you experience any issues or suspect there is a bug in Patch Notification Bots, please log a support ticket and a member of the Adaptiva support team will be touch as soon as possible.
Comments
0 comments
Please sign in to leave a comment.