I hope my explanation is clear below… I have a couple ideas on doing this but want to see what ideas others may have or point me in another direction.
I have an Analysis with several Properties that reads data using the JSON client inspector. The JSON file is distributed to all clients. Sample property:
path (“$.” & (computer name as uppercase) & “.” & “environment”) of json of file “mydata.json” of (client folder of site “CustomSite_MYSITE”) as string | “N/A”
What I am needing to do is to use the results of that data in client relevance. It would be used to create Dynamic Groups and filter Fixlets, Tasks, Baselines to be relevant or not relevant.
Example use:
if (path (“$.” & (computer name as uppercase) & “.” & “environment”) of json of file “mydata.json” of (client folder of site “CustomSite_MYSITE”)) as string = “Development” then True else False
I want to avoid copy/pasting the same relevance to look up that data in every Group, Fixlet, Task, etc. Not only because this would be gathering the same data many times creating unnecessary load on clients but also if we ever make a change, it would be difficult to identify every place it’s used and make updates.
Some of my questions with potential outcomes.
Is it possible using client relevance to get data from a property? (session relevance is easy, but asking about client relevance)
Should I instead set client properties, such as _CMDB-Environment = value of “Development”, by calling BigFix API or a Task and let the client “tattoo” itself?
Should I look at (forgive me I can’t find the term right now) but I believe there is a “client site” or maybe “client mailbox” per registered client? Maybe the JSON file goes there so it’s unique to each computer individually?
It is not practical to get data from a property on the client side. My understanding is this is intentional. If you are super clever, you could probably engineer around it, but I would not recommend this path.
My go-to method is using client settings, set by an action to Tattoo the endpoint, as in your item 2. You can then stack Fixlet relevance off of that client setting, or you can use automatic groups off of those settings.
Yes, there is a client side mailbox and you can use it to get your client unique file to the endpoint, then use normal file inspection from the client. This is functionally similar to as settings Tattoo. This can hit rough spots in higher scale environments, especially if the unique files are “fast changing”.
Gettting settings to endpoints en mass via an automation has more tricks available than getting unique mailbox files to endpoints en mass.
I’ve made a little progress on this. I realized I think what I am looking for a Client Setting rather than Client Property… at least at the most basic level.
This is what I am testing right now, a task that will tattoo the client…There are several settings I will add, but just testing the 1 as a proof of concept. I will probably not have a chance to work more on this for a couple weeks.
parameter "myfile" = "{pathname of file "mydata.json" of client folder of site "CustomSite_MYSITE"}"
parameter "computername" = "{computer name as uppercase}"
parameter "computerenv" = "{path ("$." & (parameter "computername") & "." & "environment") of json of file (parameter "myfile") as string}"
setting "My_Environment" = "{parameter "computerenv"}" on "{now}" for client
I am potentially interested in leveraging other more advanced methods, but so far this is tracking good.