I am currently working on developing a number of custom flash modules. In which I have had limited success.
I am hoping to share the modules on splunkbase once finished.
When developing custom flash modules, you’re basically on your own. You will have to create custom module code to hold your swf (you won’t be able to use FlashWrapper since it has a lot of stuff that is specific to Splunk swfs). There are no Splunk ActionScript libraries to help you out here, but you don’t really need them anyway. All communication with Splunk can be done through the standard URLLoader class in Flash.
Flash communicates with Splunk via proxied REST endpoints. These are the same as the REST endpoints on splunkd, but they are served through splunkweb to get around the limitations of Flash not fully supporting REST. For example, the endpoint you will probably use exclusively is the results_preview endpoint:
http://<splunkhost>:<splunkwebport>/en-US/splunkd/search/jobs/<jobid>/results_preview/
You simply have to make a request from Flash to this endpoint with the appropriate parameters (see the REST documentation for specific parameters). The one parameter of interest for consuming data in Flash is the output_mode parameter. This parameter allows you to specify whether the data you receive is in xml, json, or csv format (I believe the default is xml if the parameter is not specified). Since Flash has built in support for XML, the xml output_mode is probably the easiest to use out of the box. However, it is also the heaviest. We use the csv format for our Flash modules since it is the lightest weight, but this requires a custom CSV parser to consume. Fortunately, CSV is not a difficult format to parse, so you can probably write a CSV parser yourself (or find a third party library). Also, Adobe makes an open source library that parses JSON, if you’re interested in using that format.
The only other advice I can give is the following:
Your module code (JavaScript) needs to do 4 things:
Then, in Flash, you will simply construct a url like the one above by concatenating basePath + “/search/jobs/” + jobID + “/results_preview”, and make a request to that url (with whatever parameters you decide) when your loadData method is called.
If you can get that far you should be golden, and you can then create anything you want in Flash.