@genesiusj Then you may have some opportunities to cleanup, but just combining my logic with yours current one, I have this: | rest splunk_server=local /servicesNS/nobody/SA-ITOA/itoa_interface/glass_table report_as=text fields="_key,identifying_name,description,acl,definition" ```1```
| eval value=spath(value,"{}")
| mvexpand value ```14 glass tables```
| eval glass_table_name = spath(value, "identifying_name")
| search glass_table_name = "gex ecosystem - jp tes" ```1 glass table```
| eval description = spath(value, "description") ```this is blank ???```
| eval key = spath(value, "_key") ```is this the glass table ky: 2913043e-76e1-11f0-abf2-0050568f9bbf```
| eval acl = spath(value, "acl") ```what is acl? an access control list listing what permissions are used on the glass table?```
| rex field=acl "\"owner\"\:\s\"(?<owner>\w+)\"" ```glass table owner/creator```
| eval definition = spath(value, "definition") ```what is definition?```
| rex field="definition" max_match=0 "(?s)\"(?<ds_key>ds_[^\"]+)\"\\s*:\\s*\\{.*?\"name\"\\s*:\\s*\"(?<ds_name>[^\"]+)\""
| eval pair=mvzip(ds_key, ds_name, "||")
| mvexpand pair
| eval key=mvindex(split(pair,"||"),0),
name=mvindex(split(pair,"||"),1)
| table key name
| sort key But you can append more values to it such as the GT name or even filtering it by name so your result will always be the one that you are filtering. Also, to your questions there: "Description" can be blank if malformed or not informed. If that is important to you, you can review your specific GTs and work on the extraction properly. I don't think it is as you never actually use it in your results in this example. "acl" is an object containing access control list fields to map ownership, permissions and storage app of the object. It is a common object for Splunk knowledge objects. "definition" is the actual source code behind the GT, so there is where all the panels, queries, dropdowns, styles, etc are stored.
... View more