Developer Platform

We built our platform to be accessible and extensible from the start

The Indicee Platform has a range of features that allow developers to access BI capabilities via public APIs as well as extend Indicee by adding new primitives, formulas and capabilities.

On top of accessing and extending Indicee programmatically, the iBIOS API allows you to manage your own BI application running on the Indicee platform.

iBIOS Architecture

Accessing the Indicee BI Services

Indicee provides web APIs (largely REST) for data management, data modeling, reporting and a range of auxiliary functions such as user administration.  These APIs can be used for three main purposes:

  1. Automating the Indicee BI Application: This includes actions such as automating the  uploading of new data and retrieving reports or data sets for submission to other systems.
  2. Integrating Indicee with another Application: Examples include embedding dashboards and reports from Indicee within your own application.
  3. Creating a custom BI Application on Indicee: BI developers that need to bring data together from multiple sources and then share it with the business in very specific ways can add customizations to Indicee to create their own BI application.

 

To access our platform services via the API, you need to first register an application key in a similar way to many other on-line web services.  This application key is used to identify who is calling our platform.  It also allows you to control which users can access the platform via your application and potentially what permissions these users have (we use the common OAuth protocol for this).

The iBIOS Application Management API provides a programmatic way to manage Indicee client applications, including the registration of application keys, tracking of quota limits and per-application user management.  Moreover, Indicee provides an iBIOS web portal that offers a web UI for the management of applications – basically a UI around the underlying Application Management API.

For a more detailed description visit the API page.

Re-using the Indicee BI User Inteface Elements

In addition to extending and automating  the number-crunching features of the platform, Indicee’s main UI elements including the report writer, report viewer and the dashboard system are directly embeddable in external content or applications and support SSO with SAML.

This makes it very easy to use the Indicee Platform to not only create a BI Model for your data but quickly add report and dashboard elements directly to your own application.

Customizing the Indicee platform

Any given version of the Indicee Modeling platform (IMP) will have a set of BI building blocks for which we will expose constructor libraries. For instance in Indicee 2.0, we allow developers to upload new functions that can be used in formula definitions when creating their BI Model. In future, we will make public libraries for constructing a range of other BI objects and assets such as Calendars (to define your own time periods and how they consolidate) and Metrics (to define measures with related goals and scores).

The iBIOS Application Management API allows you to submit new building blocks for the supported extensible features of IMP, and the iBIOS portal provides a user interface to develop extensions online.

Extending IMP is definitely an expert level activity and requires more knowledge than simply defining data models and uploading data via the API.  There are several reasons for this:

  • IMP is fundamentally built on functional combinatorial semantics. IMP must be extended in a stateless functional language.
  • iBIOS has libraries needed to create new primitive IMP building blocks. There is a rich set of underlying functionality at your disposal, but these must be researched and learned.

Indicee is able to help you with any particular engine extensions you may require. So, unless you are keen to learn to fish for yourself, you can always give us a call and have us create a required customisation that you can administer and modify on your own going forward.

We make the following libraries available to all developers for the purpose of writing new custom engine features:

  • Arithmetic/Math
  • Text Processing
  • Time Calculations
  • Collections (Lists, Sets, Maps)
  • Data Caching
  • HTML Client (Web Query)
  • JSON read/write

Custom extension runtime quota and security

Custom extensions should be discrete, well-behaved extensions to IMP. Extensions that have undue server resource requirement (heap, CPU time and clock time) will be terminated by the iBIOS runtime (and an error returned). Multiple extension terminations will also result in the owning application being throttled or suspended. Indicee may also apply other runtime rules to supervise the execution of extensions. Extensions that make internet queries should also implement caches to manage latency and redundancy appropriate to be applied per data cell. The Data Cache library can be used to easily implement such caches.

Getting started with Indicee’s platform extensibility features

If you are interested in experimenting with how Indicee’s platform can be extended for your own application, or need to customize the main Indicee application to add some extra capability such as custom functions in the formula language, then please contact us for more information and instructions on how to download offline tools and documents to help you get acquainted with the necessary libraries.

If you would like a sneak peek at how to add a new formula function please see the following example: Adding a Currency Conversion Function