TIBCO Spotfire® Developer - Summary of New and Changed Features

Last updated:
6:51am Aug 16, 2021
Table of Contents

Introduction

This article summarizes all new, changed, deprecated or removed APIs and related features in all versions sinceTIBCO Spotfire® 7.11 LTS.

Read more about all the Spotfire APIs and customization options in Extending TIBCO Spotfire®.

Note that this article only covers changes made to the public APIs and SDK. Your use of any internal APIs or other internal implementation details is entirely at your own discretion and is not supported or warranted by TIBCO. For text area customizations, see Best Practices for Writing Custom JavaScript Code in Text Areas.

New Features

Improved performance for Visualization Mods (11.4)

The performance of visualization mods has been significantly improved. The transfer of data (rows and hierarchies) is now at least 2x faster for large data views and on par with the performance of native visualizations. Also, interactions are much more responsive with faster cancellation of obsolete API calls, for example, when undoing an operation or performing a new marking or filtering operation before the previous one has been completely processed.

APIs for Viewing/Editing mode of an analysis (11.4)

It is now possible to call the API to find out whether an analysis is currently in viewing or editing mode. This makes it possible for the developer to adapt custom UIs to show or hide authoring capabilities depending on the mode, and achieve the same behavior as native UIs, such as axis selectors, icons in visualization title bars, and panels.

This API addition applies to the Mods API v1.2, the C# Custom Visualization API, and the JavaScript API for mashups, and works for installed Spotfire clients as well as web clients.

Mods developers on TIBCO Cloud Spotfire can sign mods using their own CA certificate (11.3)

Mods developers on TIBCO Cloud Spotfire can download the TIBCO Spotfire Package Builder from Library > Resources > Downloads to sign visualization mods with their own CA certificate. See Signing a visualization mod using Package Builder.

Spotfire Mods API 1.1 (11.3)

The Spotfire Mods API 1.1 is a minor update to the API and includes the following new features:

  • The ability to cancel a Reader, which allows you to start and cancel subscriptions for more dynamic functionality.
  • ID property on Page objects, more robust than index and name.
  • Enabled state for radio buttons.
  • New leafNode method on DataViewRow objects, which makes it easier to handle data from a categorical axis without having to check for empty expression.
  • New elementId method on DataViewRow objects, which gives you stable row identifiers that can be used to identify visual elements in different data views.

All the new features are non-breaking, and existing mods Spotfire Mods API 1.0 will continue to work in Spotfire 11.3.

Open .mod files in web clients using drag and drop (11.3)

It is now possible to open a visualization mod by dragging the .mod file to an open analysis in the Spotfire web client. In earlier versions this was supported only in the installed clients.

Added support for the JavaScript Mashup API in editing mode (11.3)

It is now possible to use the JavaScript API also when the Spotfire analysis is in editing mode, enabling authoring of an analysis in a mashup context.

API to remove all and none from filters (11.2)

The new capability to remove (All) and/or (None) options on the item-, list box- and radio button filters is also accompanied with an addition to the C# API that allows you to automate this functionality in IronPython scripts and C# extensions.

API to color cross table cells by other columns (11.2)

The new capability to color cross table cells by values and custom expressions of other columns is also accompanied with an addition to the C# API that allows you to automate this functionality in IronPython scripts and C# extensions.

JavaScript Mashup API authenticates silently when possible (11.1)

If the Spotfire Server is configured for OpenID Connect authentication, then the API automatically tries to authenticate users without requiring user interaction, as was previously only supported for NTLM, Kerberos or X.509 Client Certificate authentication.

Customize the welcome page (11.0)

The white-labeling mechanism of Spotfire (also known as co-branding) has been extended so that the Spotfire welcome page content can be replaced by custom content such as graphics, text and links. This extends the possibility to brand Spotfire as a domain or organization-specific analytics tool. The content of the custom welcome page is provided through a custom HTML file, and it is possible to insert images, text and links. In addition, it is now possible to change the side image in the "splash screen" shown when starting the installed Spotfire client.

Visualization Mods (11.0)

Spotfire 11.0 provides the much awaited Spotfire Mods, a new lightweight cloud-ready framework for building new interactive visualization types, called visualization mods, that can be used in Spotfire like any other visualization. By connecting mods to any Spotfire data source and integrating with data science and other built-in Spotfire capabilities, you can create highly customized analytics applications directly within the Spotfire environment.

Visualize labels from columns in the secondary table (10.10 LTS)

It is now possible to show labels in a plot from columns in secondary data tables. This means for example that its possible to visualize data grouped by an id column, but instead of technical id:s, show the labels in the visualization as a more human-friendly name (which is only present in a secondary table).

Custom top level menus (10.10 LTS)

You can now use the C# API to add new top level menus for your custom application and document tools. A custom top level menu can also contain sub menus for more fine-grained arrangement.

This is especially useful when using Spotfire as a platform to build analytic applications. Since custom tools are often the most used tools for users of an analytic application, having direct access to them in a top level menu makes the analytic application easier to use. In addition to the existing custom toolbar, co-branding and white-labeling capabilities, the top level menus feature provides an extra option for customizing Spotfire.

Custom Export Tool with current theme (10.10 LTS)

With this release it is possible to have a Custom Export Tool to follow the current theme that is used in the analysis, in addition to using the Spotfire light theme (default). This affects not only colors, but also layout, such as font sizes, etc.

Custom Data Source on application thread (10.10 LTS)

Spotfire now performs data loading in background processes that runs in parallel. This may sometime cause problems with custom data sources. To avoid those problems, a new property, AlwaysLoadOnApplicationThread, has been introduced to the CustomDataSource class. This can be overriden to signal that the data source should always be loaded on the application thread.

API to configure dual shared scales (10.9)

The C# API now allows configuring a visualization with dual scales. 

  • API reference: Scale.class (IndexedScaleLabelLayout, IndexedLabelOrientation, IndexedShowLabel, IndexedMaximunNumberOfTicks, IndexedShowGridLines)

API to add Python data function (10.9)

The C# API now allows for creating a data function based on a Python script.

Digital signing using local certificate stores (10.9)

The Spotfire Package Builder console app now supports digital signing of cab files using a certificate in a local certificate store. This comes with the benefit of not having to provide a password on the command line. See Developer Documentation.

C# API for creating data functions without approval stamp (10.8)

The default behaviour when creating a data function with the Spotęre C# API is to have an approval (trust) stamp set for the current user. The API now allows for inspecting the approval stamp of a data function, and for creating a copy (of ataunctioneęnitonǼ that is not automatically approved by the current user.

Custom map chart projection (10.8)

The C# API now allows for defining a custom projection to use with the map chart. This type of projection can be generated from imported GeoTIFF image files, from imported Shape files, or, they can be added by users. See example.

Data transformations on data sources (10.8)

The C# API now allows for getting and setting data transformations performed on the result of an imported data connection data source. Read more here.

Set legacy limit by marking behavior (10.8)

To allow for compatibility for applications that require the legacy limit by marking behaviour there is now a C# API that allows for configuring whether visualizations should use the behavior of versions 10.7 and prior,  or the new behaviour introduced in this release, when limited by their own marking.

Identifier for custom tools (10.8)

You can now specify an identifier to your custom tool to be used in the  ToolbarShortcuts preference when adding the tool to the toolbar.

API to show or hide pages for consumer users (10.7)

The Spotfire C# API now allows you to programmatically, from a custom extension or script, inspect and change the visibility of a page in Viewing mode. This means that pages can be shown or hidden from consumer users dependent on the context in which the analysis is opened, for example, who the logged in user is, or what the screen resolution of the client device is.

Uniquely identify visualizations in integration tests (10.7)

It is now possible to identify Spotfire visualizations in the HTML DOM in a unique and persistent way. This is useful when creating integration tests in Selenium (or similar testing frameworks) and have them run in a predictable fashion. Read more here.

C# API to access user information (10.4)

This addition to the C# API allows IronPython scripts or C# extensions to access user name, domain, group/role membership and other relevant information about the current user.

Calling the REST and SOAP APIs on behalf of end users (10.3)

It is now possible to use an OAuth2 Authorization Code Grant flow with the Spotfire Server REST and SOAP APIs to make the API calls on behalf of end users.

API to expand or collapse the layer handler widget in a map chart (10.3)

It is now possible to use the Spotfire C# API to get and set the state (expanded or collapsed) of the layer handler widget in a map chart. See MapChart.LayerHandlerState.

Improved API to reload data tables (10.3)

The Spotfire C# API to reload data tables in an analysis has been redesigned for improved ease of use and robustness. For details, See the Deprecated and Removed Features section below.

Library API for SBDF file upload (10.2)

The new Library REST API lets external applications upload SBDF formatted data to the Spotfire library.

API for column header height in graphical table (10.2)

It is now possible to use the Spotfire C# API to configure the number of lines of text in the column header in a graphical table. See GraphicalTable.ColumnHeaderLineCount.

API to export data as comma-separated files (10.2)

The Spotfire C# API for exporting data files now supports .csv formats with values separated by commas or semicolons, in addition to tab separated files. See DataWriterTypeIdentifiers and TablePlot.ExportData.

API to reload linked and/or stored data sources (10.1)

You can now reload individual data sources via the Spotfire C# API. This is useful, for example, when you want to add custom reload buttons in a text area to be used by Spotfire Consumer web client users. See DataOperation.Reload and  Data Table Source View API.

Allow for empty values in custom row methods (10.1)

The Spotfire C# API now allows for empty values to be propagated to custom row method implementations. Empty values may, in many cases, have special meaning, and with this API addition, those cases can now be handled in a custom row method. See CustomDataMethods.CustomRowMethod.

API to configure the AutoCreateFilters property on a data table (10.1)

It is now possible, via the Spotfire C# API, to configure the AutoCreateFilters property on a data table. By setting the property to false (default is true) users get to manage filters manually, and they can decide whether they want to create filters for certain columns or not.

See:

API to rename, copy and move items in the library (10.1)

The Spotfire C# API has been extended with additional Spotfire library management operations that make it possible to rename, copy, move and set metadata (description, keywords and properties) on library items. The operations can be called from custom extensions or from IronPython scripts. See LibraryManager.

Lookup Automation Services jobs via the API (10.1)

It is now possible to use the Spotfire C# API to browse for Automation Services jobs stored in the Spotfire library. This can be done directly from the LibraryManager class or using the LibraryBrowserDialog UI.

New runtime parameters for custom tasks in Automation Services (10.1)

The Automation Services API now provides the following runtime parameters for custom tasks:

  • Information about which context a job is executed in, on the server or locally in the client. This enables custom tasks to execute differently depending on the context.
  • File path to running job.

See TaskExecutionContext.

Updated Java User Directory API (10.1)

A new version of the Java User Directory API is released, which is easier to use and has extended functionality. The following capabilities have been added to the API, giving it the same options as the User Directory web service:

  • Set display name and email address when creating users and groups.
  • Update display name and email address for a user or group.
  • Improved search for users and groups.
  • Enable/disable a user.
  • Lock/unlock a user.

New Filter Rows Transformation (10.1)

The Spotfire C# API now exposes FilterRowsTransformation, a transformation type that is used to filter out rows that do not match the given expression. In addition, the more generic ExpressionTransformation now includes a where clause property. This API is useful when you want to add transformations to a data table using IronPython scripts or custom extensions.

Preferred aggregation method (10.0)

The Spotfire C# API allows for getting or setting the preferred aggregation method to be used by plot heuristics when creating aggregated expressions from a data column. See DataColumn.PreferredAggreationMethod and VisualizationPreferences.PreferredAggregationMethodForNumericColumns.

Default layers for map chart (10.0)

The Spotfire C# API now allows for loading the default layer, for example base map layer, TMS layer, or feature layer, when configuring a map chart. See MapChart.AutoConfigureLayers.

JavaScript API: New authentication mechanism support external/web authentication (7.14)

It is now possible to use the JavaScript API on a Spotfire Server that is configured with any external/web authentication mechanism. For example, you can now create mashups that uses .dxp files on TIBCO Cloud Spotfire.

API to insert data operations (7.14)

Using the Data Table Source View API it is now possible to add data operations (AddRowsOperation, AddColumnsOperation and DataTransformationOperation) to any location within the data table structure (SourceView).

REST API to run Automation Services jobs (7.13)

It is now possible to trigger execution of Automation Services jobs from an external application using the Automation Services REST API. A job can either be stored in the Spotfire Library or passed as an argument. The API uses an OAuth2 based authentication/authorization mechanism.

OAuth2 based authentication for the Web Service (SOAP) API (7.13)

The SOAP Web Services API now uses an OAuth2-based authentication/authorization mechanism. This means that the API client only needs to support a single authentication method that will work with any Spotfire Server authentication configuration.

Simplified workflow for building Spotfire C# extensions (7.13)

With this release comes an updated and simplified procedure for building C# extensions for Spotfire. The package building functionality is now integrated with Visual Studio®. Templates are provided so that the configuration needed for a third party developer is kept to a minimum. See Developer Documentation.

Spotfire distribution files (7.13)

With this release it is possible to ship a bundled solution, containing several Spotfire packages, as a single distribution file (.sdn). See Package Builder console parameter reference.

Export to PDF with the Spotfire C# API (7.12)

A prepared PDF report can be exported with the Spotfire C# API, which makes it possible to include exporting of PDF reports in custom workflows with C# extensions or IronPython scripts. Use Report.ExportToPdf(Stream) or Report.ExportToPdf(String) to export a PDF from the analysis. Enumerate reports using the Document.GetReports() method.

Export to PDF with the Spotfire JavaScript API (7.12)

A prepared PDF report can be exported with the Spotfire JavaScript API, so that you can take advantage of the PDF reporting capabilities of Spotfire in a web mashup environment.



In addition, there is an option in the JavaScript API to launch a dialog for exporting to PDF without having a prepared report. This option now has the same capabilities as when using the Spotfire clients:

  • The dialog provides a preview.
  • The exported visualizations use the visual theme in the analysis.
  • The exported PDF is of a higher graphical quality.

Use Document.getReports() to enumerate existing reports and Document.exportReport() to export a report to PDF. Use Document.exportToPdf() to launch the export to PDF wizard.

API to render pages and visualizations to PNG images (7.12)

The Spotfire C# API has new capabilities when rendering pages and visualizations. The resulting PNG images use the visual theme, and the API includes settings to adjust the resolution as well as the visibility of visual attributes, such as annotations, axis labels, legend and title. This API is useful when creating export tools to support customized layouts or output formats. See Visual.RenderAsync() and Page.RenderAsync().

API to remove data operation (7.12)

The Data Table Source View API now lets you remove individual data sources or other operations, such as add columns operations or add rows operations.

API to maximize a visualization (7.12)

The Spotfire C# API now supports the ability to temporarily maximize a visualization, and then return to the previous page layout again.

API to set WMS layer username and password (7.12)

The Spotfire C# API now supports configuring a WMS layer with username and password.

Changes in Functionality

There are no changes in functionalty.

Deprecated and Removed Features

Legacy SOAP Web Service API

The legacy SOAP Web Service API has been removed in 10.3. It is replaced by the OAuth 2.0 based SOAP Web Service API (introduced in 7.13). Instructions on how to migrate existing solutions can be found here.

The API User and Impersonator groups are no longer created during a fresh installation. On upgraded systems they remain but are renamed to "API User (obsolete)" and "Impersonator (obsolete)". They can be removed at will.

DataTable.Refresh and related methods

The following methods and properties in the C# API have been marked as obsolete (from 10.3)  and will be removed in a future release: DataTable.Refresh, DataTable.IsRefreshable, DataTableCollection.Refresh, DataTableCollection.RefreshAll() andDataTableCollection.RefreshAsync().

Alternative methods are provided: DataTable.ReloadAllDataDataTable.ReloadLinkedDataDataTable.RefreshOnDemandData and corresponding methods in DataTableCollection.

Visual.Render and VisualContext.Render

The Visual.Render() and VisualContext.Render() methods in the C# API has been marked as obsolete and will be removed in a future release. Use Visual.RenderAsync() instead.

Java User Directory API

The existing Java User Directory API (com.spotfire.server.userdir) is deprecated (from 10.1) and will be removed in a future version. That API has been replaced by the new user directory API (com.spotfire.server.api.userdir.UserDirectory).

Java Information Services API

The following functions in the Information Services API are deprecated (from 10.1), and will not be available in a future version:

  • MetadataItem.isTerminal(). Use attributes instead
  • Public constructor MetadataItem(String, String). Use MetadataItem.Create(string, string) instead.
  • Public constructor MetadataItem(String, String, boolean). Use MetadataItem.Create(string, string) instead.

The following Java functions in the Information Services API have been removed (10.1):

  • MetadataItem.fromXML(Element)
  • MetadataItem.ToXML(Element)
  • JDBCTypeSettings.convertToExternal()
  • JDBCTypeSettings.formatXML(Element)
  • JDBCTypeSettings.parseXML(Element)
  • JDBCContext.resolveTable(SourceTable)

Document.Export(PDFExportSettings)

The Document.Export(PDFExportSettings) in the C# API has been marked as obsolete (from 7.12) and will be removed in a future release. Use Report.ExportToPdf(Stream) or Report.ExportToPdf(String) to export a PDF from the analysis. Enumerate reports using the Document.GetReports() method.

Closed Issues

Version Key Summary

7.13

TS-51841

Only the first cursor got the correct formatting when using the API method DataValueCursor.CreateFormatted in a script.

10.0

TS-49943

PDF export did not take custom visualization area size into account.

10.0

TS-56737

'Maximize Visualization' did not exist in the toolbar of a custom visualization.

10.0

TS-57015

Spotfire closed unexpectedly when loading document with a custom extension. Issues were due to illegal object to be deserialized.

10.2 HF-001

TS-59319

There were occasional script errors in an analysis using compatibility versions of jQuery and jQuery UI.

10.3

TSDK-654

There was no "MyExtensions" folder in the downloaded SDK folder.