THIS IS NOT THE CURRENT VERSION. The current version is 3.3.12, is free for internal use, is 70 releases newer (that is not a typo), and is 4.5 years newer.
This ancient LGPL version on this page was released 4.5 years ago in April 2012. Sideview will in all likelihood be removing this old obsolete version from Splunkbase within the month, so if you feel that you're unable to use the current (also free) version on the Sideview website, please let us know.
Upgrading from 1.3.5 to 3.3.12 will be a bit of a shock to the system. You would be jumping forward 70 RELEASES, getting tons of new tools, new techniques, new modules, new documentation and examples, and even a complete visual authoring system for creating and editing Splunk Views. See the Sideview site for details and to get the app.
You'll find all the documentation within the app itself along with dozens of working examples and tutorials.
> Updated all copy to notify users that the latest version of Sideview Utils is
2.0.9 and is freely available from the Sideview Site for internal use.
> Updated HTML, Pulldown, ResultsValueSetter, and Pager modules to be
compatible with the new json search results format in the Splunk 5.0 beta.
(Note that we are also still compatible with the old 4.X format.)
> Fixed a regression introduced in 1.3.3, around the FlashChart race
conditions in complex views. (See release notes for 1.3.1 and 1.3.2.)
> Fixed a minor bug in Search, where in some cases the $search.timeRange.*$
keys wouldn't work correctly in the "search" param.
> Patching a strange problem that showed up suddenly in IE, where appearance and
behavior of window.console started leading to js errors everywhere on at
least one system.
> Improved the FlashChart patch to avoid a problem where in simpler views
the FlashChart would not load the first time and the user would have to
either submit a second search or interact further to make it appear.
> Fixed a bug in the HTML module, where $foo$ substitution within the
actual value of the "src" param was not done properly. added testcase.
> Patched a problem in the FlashChart module that has been the cause of
many race conditions around page load in complex views.
> Fixed a problem in the Pulldown module where CSS changes in Splunk 4.3
caused the module's internal progress bar to be misaligned.
> Fixed a bug on Internet Explorer, with dynamically-loaded Pulldown
modules, if they had enough entries to warrant an automatic scrollbar,
would have some pixels of the longest options obscured.
> Implemented code around how Sideview applies its "customBehaviors", to fix
a subtle bug in certain cases where customBehaviors would not take effect
until after the autoRun sequence had started. Note that the old methods
to apply customBehaviors from your apps will continue to work, although
they are subject to this bug around autoRun.
> Fixed a bug where dynamically-loaded Pulldown modules would have their
width param ignored on Internet Explorer.
> Improved the integration between the ZoomLinks module and the Timeline
> Ongoing improvements and bugfixes in the new Timeline module.
> Reworked TextField to make customBehaviors for input validation easier.
> Implemented Button's long lost 'allowAutoSubmit' param.
> Fixed a bug where if an HTML param under an autoRun node used the "src"
param instead of "html" param, it would not display its content.
> Gave the HTML module the ability to replace dynamic tokens in the value
of it's "src" param, (but *only* with values from the querystring)
> Added some high level docs about the advanced XML framework .
> Fixed a bug in 2-level table drilldowns that used the Pager module.
Clicking the second Pager would drive changes in the first taking
away the second Pager and second table.
> First functional version of the Timeline module. (Larger release to
follow within a month or two)
> In apps that implemented the new experimental viewstate circumvention (only
Sideview apps have done this), if you went to a savedsearch URL in a view
where the back button functionality was enabled, the back and forward
buttons would not work correctly.
> Fixed a bug on Internet Explorer that caused [object Object] to
get substituted for the search string in a class of drilldown cases.
> Fixed a problem in ValueSetter that you would hit if you were using
uriEncodeKeys to encode the actual 'search' key.
> Changed Sideview.utils.contextToQueryString so that it no longer preserves
minor keys like 'foo.value', 'foo.rawValue' and 'autoRun'
> Fixed typo in homepage HTML that caused the first panel to be invisible.
> Fixed a bug in ValueSetter whereby you couldn't use custom Sideview keys
like $results.sid$ in the value param. Testcase added.
> Fixed a bug in the endless scroller where an upstream change to the
selected fields wouldnt re-render the layers.
> Added a prototype view to the app that is basically flashtimeline but with
both an endless scroller and back button support. Note the custom behavior
still has some CSS bugs on IE. I'll give it more attention soon.
> Added the first version of a new Events module. The module is similar to
EventsViewer except it works in an 'endless scrolling' mode so you dont
need to paginate it. Docs and testcases added.
> Complex cases involving transformed searches and FlashTimeline drilldown
interactions now supported correctly.
> HTML module now has a 'src' param that you can use as an alternative to the
'html' param. When src is set to 'foo.html' the module will look for its
content at '/appserver/static/foo.html'.
> if you hold down Ctrl (Cmd on macs) when you click, the Button module
now works with Redirector to launch the URL in a new window.
> Added some docs for how to go about using HTML instead of SingleValue.
> Added some docs to explain the finer points of using the Redirector and
> homepage now has 'bump' warning only for Splunk versions before 4.2.3.
> Adding new readme file so that the 'checking for typos' messages on startup
no longer flag the new Sideview keys as typos. (This will only have an
effect for Splunk versions >= 4.2.3).
> Fixed a bug where if you nested SimpleResultsTables but gave them
inconsistent values for 'displayRowNumbers', the table drilldown keys
could be off. Testcase view added.
> 'all' is now a valid timerange argument in URLs for both earliest and latest.
Most significant practical effect is that when Redirector sends an 'all time'
range somewhere, it will use 'all' for the arguments, thus allowing patched
TimeRangePickers in the target view to prepopulate correctly.
> All time headers across the system will now use the 'header_label' key from
times.conf automatically if the time arguments match the stanza's values.
> Fixed a bug where if you pasted into a TextField using the right-click menu
or the 'Edit' menu up top, you could end up with an inconsistent UI.
(Splunk core modules also suffer this bug.
> Fixed a bug where if you had a mixed URL combining search.name=foo with
timerange args, on page load you would get an erroneous error message.
> Fixed a bug in certain complex cases involving customBehavior where
TextField edits wouldn't make it to the final search unless you hit return.
> Fixed a JS error on views with only HTML modules and other static modules.
> When using the slide left/right links in ZoomLinks, it no longer jumps back
to old zoomed-in or zoomed-out ranges previously set.
> Fixed a bug in Pager where if you had both a real-time timerange and
a postProcess search, it would always render zero links.
> Also updated the text about licensing to be more clear in some areas.
> Fixed a typo in ResultsValueSetter that prevented it from working in the main case
where there was only one row.
> Packaging difficulties caused me to accidentally remove the
CustomBehavior module from Utils 1.1.6
> Added the Button module. Behaves basically the same as SubmitButton
but with cleaner code. And as with all sv modules, you can easily
define custom behavior.
> changed form prepopulation for saved reports to not persist internal
callbacks in the encoded value.
> Fixed a bug in Pulldown where if dynamic results had tags, the tag
values would get concatenated onto the values and labels.
> Sped up Pulldown module rendering by using outputMode=json instead
> Fixing a bug where you couldnt use the width param on a multiple
select Pulldown, and the 'width=xxx' would appear in the UI.
> Added the ResultsValueSetter module. (Picture ValueSetter, but with
the power to fill values from fields in search results.)
> Still Experimental:: Added a custom module CustomRESTForSavedSearch, that
exposes a python endpoint to insert serialized context and 'edit view'
information into saved searches.
> Still-Experimental: JobSpinner module.
> Pager now takes up no space when empty
> Pager can now account for postProcess searches even when rendering events
> Redirector can now redirect array-valued context values that come from
> ValueSetter now has a param that can be set called allowClobber, which
defaults to True. If you set it to false it backs off and does nothing
if the value that it would normally set was set from above. This is needed
for prepopulating multiple-selection Pulldowns from the URL even when there
is a fallback default specified by ValueSetter.
> ValueSetter has an optional param called 'delim'. If set, the string value
will be split on this value and returned downstream as an array. This allows
ValueSetter to set default values on multiple-selection Pulldown modules.
> Fixed a bug where TimeRangePicker could later reselect itself to an old
value in the page URL.
> Patched SimpleResultsTable to not output the name2/value2 keys if the user
clicks on the first column.
> Patched an IE bug where Pulldowns could overlap eachother
> if Pulldowns, TextFields and Checkboxes have null 'label' params, now no
label gets emitted at all.
> Fixing a number of CSS alignment issues across form elements and labels
> Improved performance in HTML module by switching to outputMode=json
> Fixed an event handling bug in the TextField module.
> Fixed a bug where ui element prepopulation would make the value not
> available for passive use in other subbranches of the view.
> Fixed a generic problem around how URLLoader transferred context keys to
the elements it was prepopulating.
> Fixed a set of problems when a set of form search controls included elements
that ran searches, like dynamic Pulldowns. Specifically we no longer use
resetUI, but created a new method called resetToDefault instead.
> Fixed more subtleties around TimeRangePicker prepopulation cases.
> Fixed a longstanding core problem where TextField edits would seem to get
ignored when it was mixed with dynamic Pulldown elements in a form search
> Fixed a problem where the patched TimeRangePicker modules were not picking
up URL arguments correctly
> URLLoader now can reload from 'soft keys' in the document hash as well as
from 'hard keys' in querystring. new cases in testcase view.
> URLLoader, when present upstream and configured with
keepURLUpdated = true, works with Pulldown, TextField, Checkbox SearchBar
and TimeRangePicker modules to preserve selection state in document hash.
> URLLoader, when present upstream and configured with
keepURLUpdated = true, supports back/forward button interaction. back and
forward buttons will work to restore state of those same 5 modules.
> URLLoader now supports multivalued selections when deserializing
request.ui_context. new case added to testcase view.
> url arg "search_name" is now "search.name".
> TextField, Pulldown, Checkbox will now detect upstream-travelling contexts
and try to select themselves to any matching value. If successful
the push will stop travelling upstream. If no more keys remain in the
Context, they will initiate a new push. testcases added.
> URLLoader will now detect upstream-travelling contexts and serialize any
values into the document.hash. testcases added.
> URLLoader's optional earliestTimeArg and latestTimeArg params no longer
support $foo$ substitution. It didnt seem like anyone was ever going to use
it, and it made my head hurt. Now you simply set them to straight argument
names. Defaults are "earliest", and "latest".
> URLLoader's 'autoRun' param changed to also not allow $foo$ substitution,
and renamed to 'autoRunFieldName' to avoid conflicts with the autoRun
> Fixed the svconsole to work in chrome.
> tiny patch to Splunk's JS logging code so that we can get working console
output in Chrome.
> Fixed a bug on Chrome where TextField modules could get populated with noise
when you use the back button.
> added documentation around URLLoader's back button support.
> added a view similar to 'flashtimeline', except that it has support for the
back and forward buttons. In the future this will probably be released in a
different app alongside possibly some new generic report builders.
> new SavedSearch module, which can pull out saved searches and their time
ranges, and any serialized context keys they were saved with. This is a work
in progress, as it has some notable gaps, like it has no way to load the
jobs that may have been previously used by the scheduler. (coming soon)
> TextField.conf, as an older workaround for annoying "None" issues in 4.1,
had 'default=""' in its conf file. in 4.2 this is now interpreted as a literal
value of two double quote chars, which was unfortunate. Fixed now.
> Added docs and sample code showing developers how to check for the
Sideview Utils app from their app and make sure it matches a minimum
> Adding the 'greater than or equal' symbol whenever HTML is displaying result
or event counts.
> Made the SV console show the timerange args not just the toConciseString()
> Refining ZoomLinks module to
a) use the selected FlashChart timerange if there is one.
b) remember a stack of zoom levels when zooming in and out.
c) use the icons in the default splunk skin.
>patching a bug in SimpleResultsTable about hiding downstream modules when it
first loads. (A typo in the splunk code prevents intended behavior.)
> Giving the Pulldown module a simple cue to tell the user how much progress
the search is making.
> Added the entity_refresher view, for other app-developers out there tired of
using the raw refresh URL's.
> Added the Pager module, which displays page links but also automatically
accounts for postProcess searches.
> nailing down the CSS for all our "invisible" modules. SideviewUtils.css now
makes them all invisible.
> removing the previous 'fix' for backslashes, as it was actually pretty naive.
> adding a proper implementation to auto-escape backslashes. Only the noisy
input from TextField and from Pulldown module's is backslash-escaped now,
and only the $value$ portion.
> Just in case anyone wants to do something really weird in the future,
ValueSetter now has a backslashEscapeKeys param although there's a stern
warning in the docs - if you think you need it, you probably dont.
> some refactoring to clean up ValueSetter which was looking a little creaky.
> Extracting a templatize method from Pulldown and TextField and pulling it
out into SideviewUtils.
> Fixing a bug in Checkbox where it had a 'checked' param but didnt use it.
> Patching a framework race condition around dispatchAlreadyInProgress
> the Splunk.Logger class sometimes freaks out and kills the page with
'trace is not a function'. Too much complexity there to debug it so we
dont use that class anymore- our tiny equivalent in SideviewUtils seems fine.
> Writing hidden testcase views for Checkbox and ValueSetter.
> Fixed a bug in HTML where if it was sitting downstream from a FlashTimeline
module and the user clicked on a bar in the FlashTimeline, it wouldnt trigger
> Fixed a bug in ValueSetter where you couldnt refer to the standard
$search.timeRange.earliest$ keys in the value param.
> When Search does $foo$ substitution now it replaces slashes so that the search
will get run correctly by splunkd.
> Fixed a bug when the URLLoader's pageTitle param was used, whereby the text
would get lowercased.
>added simple version detection for other apps and modules to use when
they rely on sideview_utils.
>adding a width param for Pulldown (which sets the width of the select box)
>caught a few more 'None' cases in the label params. Basically patching bugs in
splunkWeb's python code. (It converts null values into string literals of u"None".)
>pulled out another template method on Redirector to make customizations easier.
>fixing some margin-top issues for when Pulldowns and TextFields find themselves
all floated together.
>The 'name' param of the ValueSetter module now supports $foo$ substitution.
This is sort of a brainbender but it's really amazingly powerful when you need it.
>I'd forgotten to add the checkbox view into the navigation. So people probably
only saw it if they walked through using the 'next' links.
>TextField module was not doing $foo$ replacement at runtime, (onContextChange)
>Pulldown and TextField label params werent allowing the customary $name$ as
shorthand for the module's name param.
>Further improvements to Pulldown and TextField CSS so that they float better
in complex floated layouts.
>minor copy changes in some example views.
>Updated the HTML module to accept $results.count$ and all the
eventCount/scanCount/sid keys from the job object, in addition
to the $results.fieldName$ keys that it already supported.
This now *really* obsoletes SimpleResultsHeader.
>Checkbox module - now officially exists and is packaged with an example view.
>Fixed the customization we do to SearchBar, so that the value doesnt have
that random 'search ' prefix. Developers wont expect this here and it doesnt do
anyone any good.
>Gave URLLoader the power to set the pageTitle.
>small but important fix in PostProcess - now extends DispatchingModule not AbstractModule.
also fixed a small postProcess logic mistake in CanvasChart
>fixed some obscure corner-case problems where rarely-used null param values
came out as 'none' if set to explicit null values.
>fixed vertical alignment issues and other CSS issues in Pulldown across some
single-selection and multiple-selection cases.
>Pulldown - gave the outerTemplate param a default of "$value$" as it was too easy
for users to leave it unset in multiple selection cases (disaster), or worse set
it to emptystring in multiple selection cases (when they really wanted $value$)
I also put in explicit error detection in case people fall into these problematic
>Fixed a minor mistake in how URLLoader implemented the autoRun param.
>Gave various "label" or label-like params the appropriate localization flags.
>Fixed a bug in the HTML module where multiple dynamic HTML modules on one page would do weird things.
>Fixed a bug in the HTML module where in certain dynamic cases it would 'flash' a bit.
>Fixed a bug where the Pulldown module wasnt deduping it's requiredFieldsList.
>Fixed a bug in the Pulldown module where multiple selection cases could leave an unclosed div tag.
>Fixed a bug in the Pulldown module where requiredFieldList would get redundant names.
>Added the first batch of UI performance benchmarking
>Fixing a minor bug in HTML whereby it made unnecessary requests.
>commenting out the patch that circumvents viewstates.conf until the other pieces are done.
>HTML now accepts $results.myFieldName$ and it will make a request to the current job.
That request will use postProcess to get back minimal XML to fulfill all such tokens that are specified in the html param.
This obsoletes the SingleValue module as well as SimpleResultsHeader.
XML in a real app scenario is cut down to approximately 30% of what it would take to do it with SingleValue modules.
And far fewer requests means a faster UI.
>Significant examples added to cover most of that new functionality.
>Making postProcess more careful so you can refer to upstream postProcess strings as $postProcess$.
It's not uncommon that you want to just tack on a little somethin extra and you dont want to repeat it.
>making the Pulldown module's CSS work a bit better in both multipleSelection cases and single-selection cases.
>Pulling out and normalizing some code to expose $search.timeRange.earliest$ and $search.timeRange.latest$ consistently across the modules.
>adding a patch to TimeRangePicker to output the same standard keys ($search.timeRange.earliest$ and $search.timeRange.latest$ )
>Refactoring Redirector.js which had gotten a bit messy. Noticed it because it had become hard to customize in particular apps.
>improving the Patch we make to SimpleResultsTable so you can get to the secret epochTime value (when there's a _time column)
>some reorganization of the example views.
>Lots of copy edits in the example views.
>Changed Pulldown so that you can omit the 'label' from the items in staticFieldsToDisplay and it will implicitly use the 'value' field as the label. (I'd already done this for search fields but I hadn't made the same improvement to the static fields)
>Added a PostProcess module that is extremely simple and allows you to set the postProcess arg. While this is nothing new, it does automatic $foo$ substitution which opens up a ton of stuff that couldn't be done before.
>added 2 example views for how to use the PostProcess module.
>Pulldown's optional requiredFields param had a default that does no harm but doesnt make much sense.
>Pulldown incorrectly preselected "loading..." in a couple multiple selection cases.
>Pulldown needed improved validation to catch people configuring postProcess without configuring any search fields
>Pulldown's requiredFieldsList logic changed to ensure that both the value and the label fields are specified
>Pulldown changed to allow $foo$ replacement in it's specification for searchFieldsToDisplay, including $name$ to refer to the 'name' param
>URLLoader formerly used Splunk.util.queryStringToProp() which doesnt account for multivalued URL args correctly. This was then blocking correct prepopulation of multiple-selection configs
>fixed a bug in the multiple-selection documentation, which caused part of the example config to not display
>added a (hidden) page of new testcases to track various more complex handling in prepopulation.
>Much of the module param documentation in the module.conf files was written under the quite sensible key description=foo. However this is not what SplunkWeb uses, so now i've changed them all to the proper label=foo. So if you thought I'd been lazy and only documented half of my params you can now read them.
>fixed the links to module documentation that were hardcoded links to localhost:8000/modules.
>Fixed embarassing typos in 2 of the 4 mailto links.
>included the module's parentId in the SV console output.
>Fixed a context staleness bug in TextField. You'd hit it whenever you had more than 1 TextField chained together and you edit the upstream one, focus away and click something further downstream to start the search. Reviewed other event handler issues more thoroughly.
> Fixed a bug in ValueSetter where i was shadowing a variable from higher up.
> added a 'count' param to the Pulldown module. The results endpoint has an implicit count of 100 which meant the option lists could get truncated. new param is optional and defaults to 5000.
> Fixed a bug in ValueSetter. Some of the 'requiredKeys' logic was backwards.
> Had to add some new stuff to the SV console. Needed to differentiate between context keys inherited from upstream vs context keys that the module itself is contributing. The code itself is pretty hacky but I dont care - it's a debug console. Not a load bearing poster. move along.
Splunk's App Certification program uses a specific set of criteria to evaluate the level of quality, usability and security your app offers to its users. In addition, we evaluate the documentation and support you offer to your app's users.
As a Splunkbase app developer, you will have access to all Splunk development resources and receive a 50GB license to build an app that will help solve use cases for customers all over the world. Splunkbase has 1000+ apps and add-ons from Splunk, our partners and our community. Find an app or add-on for most any data source and user need, or simply create your own with help from our developer portal.