BigFix 9.5 make external calls (HTTP) from fixlet's action script

Hello,
I’m new to BigFix scripting part and I need to solve an issue.

Can someone tell me if it is possible to query an external system from a fixlet or use an analysis to do that?
More specific. I want to add a custom property to a set of VMs. I have a property set on the VM and based on this property I want to make a call (http rest api call) to get some information that I want to set on the VM in IEM server.
I have a fixlet in place that is setting some other settings on the VM and I was thinking to use this fixlet to set this other setting property based on a query on an external system.

Is this possible?
Are there other ways to query external systems from IEM and use that information to set a custom property on a VM?

Thank you in advance for your help and for your time.

Typically you would create a script of some type, depending on the platform(s) of your endpoints, to make that external call. Your actionscript could then parse and implement the results of that query.

The script could be in any supported language or runtime - Perl, PHP, Powershell, batch, bash, wget, Java, .NET, etc.

In our environment, we make frequent use of powershell and wget for these purposes.

Thank you for the response Jon.
Is there a way to make the call from the IEM server side? I know that the action script is executed on the client VM but I cannot access the external system to get the setting value because it is not visible from the VM itself.

One way I was thinking to do this is to create a Java application and run it on IEM server. I will need to provide the computer id (s) (or some other unique identifier) and get the information I need from external system (it is visible from IEM server) and then make a REST API (BigFix) call to set the custom property on the VM but I wanted to avoid that if I can do it from IEM.

Thanks,
Ioan

IBM frowns (I don’t think they will support it) at all) on anyone trying to insert data directly into the database on the server.

The model BigFix uses is that the clients submit their data.

It sounds Wierd, but you might be able too use the BigFix REST API calls from a system that CAN see your VM to submit an Action to the appropriate endpoint to tell is what to submit as the property value.

Thank you Tim.
I already started to move on an alternative solution.
I though that maybe I can do it easy and faster from IEM.

It is not the case :slight_smile:

The approach you describe is actually fairly commonly done with BigFix whereby a process/service on the Root Server interfaces with an external system (leveraging available APIs) and maps external data to existing endpoints/assets for various purposes (reporting, grouping, targeting actions, etc…).

Depending on the type of data, amount, and frequency of change, there are a number of different approaches we might recommend, but a relatively easy one is to create a CSV or XML (or similar) file containing the desired data mapping, and adding it to a custom site via the BigFix REST API. The endpoints would then be able to parse and extract the contents of interest from the file for use in a property, group, action, etc. This particular approach is fairly straightforward, but has the disadvantage that it sends the entire dataset to all endpoints of interest.

Another approach is to publish a given endpoint’s external data to its mailbox (again via the BigFix REST API) as the external data changes. This is a bit more complex/involved, but also more efficient.