Version 0.9

Skip to end of metadata
Go to start of metadata

Sisense V6.6.1

JavaScript API

The JavaScript API infrastructure was upgraded to support debugging plugins.

For more information, see JavaScript API & Plugins.

Single Sign On

An SSO user can now log in to multiple devices concurrently, but when logging out of Sisense, the user will be logged out across all devices

Sisense V6.6 

New Endpoints for the Sisense REST API V1.0

Authentication

Define specific Sisense servers as trusted servers through the authentication endpoints. This allows Designers and Administrators to copy dashboards directly to your server from the Sisense Web Application. 

Collections

Save custom objects within the Sisense MongoDB that you can access and leverage from Sisense plugins you develop.

Connections

Create and manage new live connections to MySql and SQL Server data sources through the connections endpoints.

Dashboards

Export and import new multiple dashboards through a single .dash file with the new dashboards endpoints.

Datasets

Create a manage new datasets through the datasets endpoints. 

Datasources

Return a list of dimensions for a live data source through the datasources endpoints.

ElastiCubes

Create and manage custom tables and fields through new ElastiCube endpoints. 

Folders

Delete folders and their dashboards through the folders endpoint. 

Live-Connectors

Manage your live data sources through the live-connectors endpoints. 

Logs

Return a log that describes your dashboard and widget render time through the logs endpoint.

Oauth

Manage tokens for Oauth

Translations

Return a list of your supported Sisense languages and their language files through the translations endpoints. 

New PSM Commands

In addition to new REST endpoints, much of the same functionality described above has been implemented in the PSM command shell. The following is a full list of the new commands added in Sisense V6.6:

psm ecube create
psm ecube edit fields addCustomField
psm ecube edit fields getListOfCustomFields
psm ecube edit fields getListOfFields
psm ecube edit fields getSqlOfField
psm ecube edit fields removeField
psm ecube edit fields updateSqlStatementOfField
psm ecube edit tables addCustomTable
psm ecube edit tables addTable
psm ecube edit tables deleteTable
psm ecube edit tables getConnectionStringOfTable
psm ecube edit tables getListOfCustomTables
psm ecube edit tables getListOfTables
psm ecube edit tables getProviderOfTable
psm ecube edit tables getSqlOfTable
psm ecube edit tables updateSqlStatementOfCustomTable
psm ecube edit relations createRelation
psm ecube edit relations deleteRelation
psm ecube edit relations getRelationsOfTable

For descriptions of each command and the parameters they accept, click here

New JavaScript Events

Sisense has added two new global events you can leverage through the JavaScript API:

1. 'apploaded': This event is triggered when the whole Sisense Web Application is loaded.

2. 'homeloaded': This event is triggered when the home page in the Sisense Web Application is loaded.

For more information, click here.


Sisense V6.5.2

The Sisense Custom REST API now supports:

  • Nested objects in Post requests
  • Several new pagination options
  • CSV, XML, and JSON responses
  • For more information click here.

New Settings Endpoints for Sisense V0.9

Sisense has removed the REST API token from the Admin page supported by the REST API V0.9 authentication methodology.

While this methodology is no longer recommended, you can continue to retrieve and generate V0.9 API tokens through the following endpoints:

 

GET

/settings/api

Returns your API token

GET

/settings/api/generate

Generates a new API token

DELETE/settings/api
Delete API token

 

Sisense V6.5

Announcing SisenseJS Breaking Changes

SisenseJS supports support Angular 2.x starting from Sisense V6.4. Sisense V6.5 adds support for Angular 1.x

To ensure that SisenseJS continues to work after installing Sisense V6.5, your Sisense HTML content must be encapsulated within a div element with the ID "sisenseApp".

This is required for all Sisense.js scripts whether or not your website uses the Angular framework.

In addition, if you have implemented the Angular 2.x framework, your site must load the sisenseApp element and other container elements before invoking the sisense.connect() function.

For more information, click here.

The following methods have been added to the Sisense JS API:

  • Widget.redraw(): Redraws the widget without querying (unlike .refresh() that does both). This method is used to change the size of the widgets container.

  • Widget.destroy():  Removes the widget from the DOM.

  • Dashboard.destroy():  Removes all dashboard's widgets and the Filter pane from the DOM.

Sisense REST API

New Alert Section

Sisense has exposed several new APIs for managing your Sisense Pulse alerts through the new /alerts endpoint. 

 

GET

/alerts

Get alerts

GET

/alerts/{id}

Get a specific alert

GET

/alerts/count

Get the amount of alerts for a user

POST

/alerts

Add a new alert

PATCH

/alerts/{id}

Update an alert

PATCH

/alerts/{id}/setReceiveNotification

Update alert's disabled users

New Analytics Section

You can analyze how Sisense is used in your organization by retrieving Sisense collections through the /analytics endpoint added to version 1.0 of the Sisense REST API. Collections are Sisense entities such as ElastiCubes, widgets,users, groups, or dashboards.

For example, you can see what KPIs are being analyzed, which groups are using certain dashboards, and if any ElastiCubes are no longer being used.  

GET

/analytics/token

Returns a token used to authenticate calls to /analytics API endpoints

GET

/analytics/token/revoke

Revoke a token used to authenticate calls to /analytics API endpoints

GET/analytics/collection/{collection}Get a collection of analytic data for Sisense objects

New LDAP Domain Sections

As part of Sisense's support for multiple Active Directory domains, Sisense has exposed several endpoints for adding and managing domains.

GET/ldap_domains

Get LDAP domains

GET/ldap_domains/{id}
Get a specific LDAP domain
POST/ldap_domains
Add a new LDAP Domain
POST/ldap_domains/test
Test LDAP Domain
POST/ldap_domains/{id}/sync
Sync LDAP Domain 
PATCH/ldap_domains/{id}
Update a LDAP domain 
DELETE/ldap_domains/bulk
Delete LDAP domains

 

New REST API SSO Parameters for SAML 2.0

The following parameters have been added to the GET and POST /settings/sso endpoints to support SSO via SAML 2.0:

 

loginUrlSaml

String

The login URL provided by the IdP that Sisense redirects your users to when authenticating through your IdP.

logoutUrlSaml

String

The URL where users are redirected to after logging out of Sisense. Typically, this URL is used to redirect users to a central SAML logout page where the user is signed out of all your SAML-connected applications.

idPCert

String

Certificate provided by your IdP that enables Sisense to decrypt SAML responses from the IdP.

lowSecurityJwtSso

Boolean

Determines the level of security enforced when implementing SSO JWT security.By default, this value is False, which means the JTI parameter is required.

The JTI parameter is a unique string added to the token that is used to prevent replay attacks, by making sure the token is used only once.

 

Sisense V6.4.1

Sisense REST API

The following v0.9 REST API calls have been deprecated:

/users/activate/{user}

/users/recoverpassword/{user}

The deprecated calls' functionality is supported in the following calls in v1.0 of the REST API: 

/account/activate{token}

/account/reset_password/{token}

Custom REST API

The following functionality was added to the Custom REST API:

  • Accumulative Builds are now supported for data imported through custom connectors
  • Users can provide their Oauth2 credentials in a window displayed in the ElastiCube Manager without hard coding them in the Oauth2config.json file. 

Sisense V6.4

Native REST Connector

Sisense V6.4 introduces our new Native REST Connector that lets you create connectors for open RESTful data sources. Through your custom connectors, you can import data directly into the ElastiCube Manager beyond your default connectors. 

Click here for the latest documentation. 

SisenseJS 

Sisense V6.4 adds the SisenseJS JavaScript library that enables you to embed widgets and dashboards into your site or applications without the use of iFrames. 

For more information, click here

Sisense V6.2.5

 

Prior to 6.2.5, several JavaScript libraries were consumed by the Sisense web environment and attached to the browser window object, which meant that a 3rd party or Sisense plugins run-time and script manager (extension) could refer to the library by pointing to window.library.

In 6.2.5, these libraries have been encapsulated in a “private” scope, which means they will only be available in the plugins run-time and script manager (extension).

The following libraries are no longer accessible via the global window object, but rather directly through their object:

  • AngularJS (Core application framework)
  • Underscore.JS (Utility library)
  • Moment.js (Utility library for date manipulation and parsing)
  • jQuery (JavaScript DOM manipulation library)


To use these libraries:

  • Before 6.2.5: window.libraryName.helloWorld()
  • 6.2.5 and up: libraryName.helloWorld()

jQuery can now be accessed directly through the $ object, and no longer through window.jQuery. For backwards compatibility you can add window.jQuery = $ to your code.

 

Sisense V6.2

New ‘Admin’ API section

GET/dashboards/admin

Get all dashboards - Allows administrators to get the list of all available dashboards in the system.

POST/dashboards/{id}/admin/change_owner

Change dashboard owner

POST/dashboards/{server}/{title}/replaceDatasource

Replace the underlying ElastiCube for specific dashboards or across the system

New ‘Folder’ API section

Folder related actions can be automated with these new set of folder related API methods, including the newly introduced sub-folders.

GET/folders

Get all folders

GET/folders/{id}Get a specific folder
GET/folders/{id}/subtreeGet a subtree of a specific folder
GET/folders/{id}/ancestorsGet the ancestors of a specific folder
POST/foldersAdd a new folder
PATCH/folders/{id}Update a folder
DELETE/folders/{id}Delete a folder

New ‘Authentication’ API section

Allows authenticating users directly through the 'login' API call.

POST/authentication/loginAuthenticate and receive user token

New ‘Dashboard’ API methods

POST/dashboards/{id}/publish

Publish dashboard 

POST /dashboards/{id}/restore

Restore dashboard

POST/dashboards/{id}/change_owner
  • Change dashboard owner

New ‘ElastiCube Set’ API methods

GET/elasticubes/setsGet all ElastiCube sets
GET/elasticubes/sets/{title}Get a filtered list of ElastiCube sets
POST/elasticubes/setsAdd an ElastiCube set
PATCH/elasticubes/sets/{title}Update an ElastiCube set
DELETE/elasticubes/sets/{title}Delete an ElastiCube set

New ‘Reporting’ API section

POST/reportingSend an email report

New ‘Group’ API methods

POST/groupsAdd a new group
POST /groups/adAdd a new Active Directory group
POST/groups/bulkAdd multiple groups at once
POST/groups/ad/bulkAdd multiple Active Directory groups at once
DELETE/groups/{id}Delete a group

New ‘User’ API methods

PATCH/users/{id}Update a user
DELETE/users/bulkBulk delete users
DELETE/users/{id}Delete a user

Sisense V6 & API V1.0

REST API

Sisense V6 introduces our API V1.0, which formalizes the existing API into an improved and easier to consume API. 

The existing REST API is still marked as V0.9 and is fully functional within Sisense V6, thus all REST API functionality is backwards compatible.

In addition, API V1.0 is documented here and is also visible from within the Sisense web application.

Javascript API - Breaking Change Announcement

Sisense V6 is fully backwards compatible with all official objects and methods as documented in the Javascript API page.

However, as is often the case when working with Javascript, outside-of-the-API functions combined with DOM manipulations are commonly used for various plugin functionalities. Thus, we are supplying guidelines for aligning your existing Javascript code with changes that have been made to various internal Javascript components.

Upgrading plugins from the Sisense forums

If you are using plugins that have been posted on our forums, you need to verify that they are V6 compatible. We have added version compatibility details on all plugin details, and wherever necessary uploaded new versions that support V6.

Here is a list of popular plugins that need to be re-downloaded for V6 compatibility:

Upgrading self-developed plugins

Existing plugins need to be tested for V6 compatibility on a staging environment before upgrading.
Make sure to read the details below on changes that might affect your code.

Javascript Changes Details

1. Module manager upgrade

The old moduleManager has been upgraded to SisenseModuleManager that now supports the following methods:

  • createModule for creating a new module
  • getInstanciated to get all modules that were registered in the application
  • getModule to get a specific module by name

2. Accessing the $scope via DOM

Using angular.element(...).scope() to get the $scope is no longer supported and will not work, as this practice misused a debugging-only tool and caused a significant impairment in our performance.

 

3. Calls with $http that return boolean values

In the past, calls using the $http service to APIs with a boolean return value would return as string values "true" or "false". Now they are returned as actual boolean values true or false.

 

4. Resources with the same name

In the past, if two resources were registered with the same name, the last one registered would be saved. 
Now, the first one will be saved, and consecutive attempts will result in an error.

 

5. Upgrades to 3rd party components

Certain 3rd party components used in the application has been upgraded:

Component
From version
To version
Changelog
Benefit
AngularJS1.2.91.4.6changelogImproved rendering performance
Underscore.js1.7.01.8.3changelog 
PhantomJS1.92.0.0changelogImproved pdf and email behavior

Also, ngGrid was upgraded to it’s modern counterpart, angular-ui-grid 3.0.1 (changelog)

  • No labels